官方地址:
Mybatis-Plus:https://mp.baomidou.com/guide/generator.html

pom中导入mybatis plus的jar包,因为后面会涉及到代码生成,所以我们还需要导入页面模板引擎,这里我们用的是freemarker。

pom.xml导入以下依赖

      <!-- 加载mybatis-plus jar包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--mybatis-plus反向生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency> <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

依赖

CodeGenarator代码

  1 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
2 import com.baomidou.mybatisplus.core.toolkit.StringPool;
3 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
4 import com.baomidou.mybatisplus.generator.AutoGenerator;
5 import com.baomidou.mybatisplus.generator.InjectionConfig;
6 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
7 import com.baomidou.mybatisplus.generator.config.FileOutConfig;
8 import com.baomidou.mybatisplus.generator.config.GlobalConfig;
9 import com.baomidou.mybatisplus.generator.config.PackageConfig;
10 import com.baomidou.mybatisplus.generator.config.StrategyConfig;
11 import com.baomidou.mybatisplus.generator.config.TemplateConfig;
12 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
13 import com.baomidou.mybatisplus.generator.config.rules.DateType;
14 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
15 import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
16
17 import java.util.ArrayList;
18 import java.util.List;
19 import java.util.Scanner;
20
21
22 public class CodeGenerator {
23 /**
24 * <p>
25 * 读取控制台内容
26 * </p>
27 */
28 public static String scanner(String tip) {
29 Scanner scanner = new Scanner(System.in);
30 StringBuilder help = new StringBuilder();
31 help.append("请输入" + tip + ":");
32 System.out.println(help.toString());
33 if (scanner.hasNext()) {
34 String ipt = scanner.next();
35 if (StringUtils.isNotBlank(ipt)) {
36 return ipt;
37 }
38 }
39 throw new MybatisPlusException("请输入正确的" + tip + "!");
40 }
41
42 public static void main(String[] args) {
43 // 代码生成器
44 AutoGenerator mpg = new AutoGenerator();
45 // 全局配置
46 String module = "workticket";
47 GlobalConfig gc = new GlobalConfig();
48 String projectPath = System.getProperty("user.dir") + "/" + module;
49 gc.setOutputDir(projectPath + "/src/main/java");
50 //作者
51 gc.setAuthor(scanner("作者名"));
52 //打开输出目录
53 gc.setOpen(false);
54 // //xml开启 BaseResultMap
55 // gc.setBaseResultMap(true);
56 // //xml 开启BaseColumnList
57 // gc.setBaseColumnList(true);
58 // 实体属性 Swagger2 注解
59 gc.setSwagger2(true);
60 gc.setDateType(DateType.ONLY_DATE);
61 mpg.setGlobalConfig(gc);
62
63
64 // 数据源配置
65 DataSourceConfig dsc = new DataSourceConfig();
66 // dsc.setUrl("jdbc:mysql://localhost:3307/vueblog?" +
67 // "useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia" +
68 // "/Shanghai");
69 // dsc.setDriverName("com.mysql.cj.jdbc.Driver");
70 // dsc.setUsername("root");
71 // dsc.setPassword("001314");
72 // mpg.setDataSource(dsc);
73 dsc.setUrl("jdbc:postgresql://localhost:5432/test");
74 dsc.setSchemaName("public");
75 dsc.setDriverName("org.postgresql.Driver");
76 dsc.setUsername("postgres");
77 dsc.setPassword("123456");
78 mpg.setDataSource(dsc);
79
80 // 包配置
81 PackageConfig pc = new PackageConfig();
82 pc.setModuleName(module);
83 pc.setParent("com.demo.micro");
84 mpg.setPackageInfo(pc);
85
86 // 自定义配置
87 InjectionConfig cfg = new InjectionConfig() {
88 @Override
89 public void initMap() {
90 // to do nothing
91 }
92 };
93 // 如果模板引擎是 freemarker
94 String templatePath = "/templates/mapper.xml.ftl";
95 // 如果模板引擎是 velocity
96 // String templatePath = "/templates/mapper.xml.vm";
97 // 自定义输出配置
98 List<FileOutConfig> focList = new ArrayList<>();
99 // 自定义配置会被优先输出
100 focList.add(new FileOutConfig(templatePath) {
101 @Override
102 public String outputFile(TableInfo tableInfo) {
103 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
104 return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
105 }
106 });
107 cfg.setFileOutConfigList(focList);
108 mpg.setCfg(cfg);
109 // 配置模板
110 TemplateConfig templateConfig = new TemplateConfig();
111 //执行main方法,在控制台直接输出表名,多个表名用,隔开结果
112 templateConfig.setXml(null);
113 mpg.setTemplate(templateConfig);
114 // 策略配置
115 StrategyConfig strategy = new StrategyConfig();
116 //数据库表映射到实体的命名策略
117 strategy.setNaming(NamingStrategy.underline_to_camel);
118 //数据库表字段映射到实体的命名策略
119 strategy.setColumnNaming(NamingStrategy.underline_to_camel);
120 //lombok模型
121 strategy.setEntityLombokModel(true);
122 //生成 @RestController 控制器
123 strategy.setRestControllerStyle(true);
124 strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
125 strategy.setControllerMappingHyphenStyle(true);
126 //表前缀
127 strategy.setTablePrefix("");
128 mpg.setStrategy(strategy);
129 mpg.setTemplateEngine(new FreemarkerTemplateEngine());
130 mpg.execute();
131 }
132 }

CodeGenerator

参考:https://blog.csdn.net/qq_44723773/article/details/118862972

Mybatis-Plus自动生成代码的CodeGenerator代码的更多相关文章

  1. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  2. 使用Mybatis Generator自动生成Mybatis相关代码

    本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  4. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  5. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  6. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  7. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  8. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  9. 使用MyBatis Generator自动生成MyBatis的代码

    这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生 ...

  10. 使用mybatis插件自动生成代码以及问题处理

    1.pom.xml中加入依赖插件 <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis ...

随机推荐

  1. [转帖]Docker-Compose 自动创建的网桥与局域网冲突解决方案

    https://zhuanlan.zhihu.com/p/379305319 Docker-Compose 自动创建的网桥与局域网冲突解决方案 当我使用docker-compose的方式部署内网的ha ...

  2. 基于javaPoet的缓存key优化实践

    一. 背景 在一次系统opsreview中,发现了一些服务配置了@Cacheable注解.@cacheable 来源于spring cache框架中,作用是使用aop的方式将数据库中的热数据缓存在re ...

  3. fasthttp 中如何使用`Transfer-Encoding: chunked` 方式的流式内容输出

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 具体的思路是这样:通过 RequestCtx 的 Conn ...

  4. 程序员必备!10款实用便捷的Git可视化管理工具

    前言 俗话说得好"工欲善其事,必先利其器",合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛.我们在团队开发中统一某个开发工具的使用能够大大降低沟通成本,提高协作沟通效 ...

  5. 开发QQ官方机器人

    QQ 频道机器人开发简明教程 1. 简介 QQ 频道机器人是一种可以在 QQ 频道中与用户进行互动的服务.这个教程旨在帮助新手学习如何使用 Python 的官方SDK,快速实现一些基本的机器人功能. ...

  6. 使用window.print进行前端打印,批量打印,设置分页,ie、火狐下设置页眉页脚

    window.print() print() 方法用于打印当前窗口的内容.谷歌调用 print() 方法会产生一个打印预览弹框,让用户可以设置打印请求. 但谷歌貌似不能自定义设置页眉页脚的文字:ie和 ...

  7. vue实现简易瀑布流

    实现效果 1.不同屏幕尺寸下根据可视区域宽度判断 应该 放几列,这里用onresize演示 2.鼠标滚动到已加载数据的底部时再次请求数据,重新计算哪一列高度最小,push到最小的那一列 实现思路 1. ...

  8. vue+elementui批量上传下载注意事项

    批量手动上传文件,和表单数据一起提交 1.在el-upload组件关键的钩子,其它省略 multiple :auto-upload = "false" :file-list = & ...

  9. 【C语言深度解剖】复数运算问题--【好题系列】学会这题,结构体没问题

    复数问题 今天博主给大家带来一道博主自己在学校做到的一个题目.这个题目可以很好的加深我们对C语言结构体的理解,在这里分享给大家.学懂这题,我们的C语言结构体,没问题了! 本篇建议收藏后食用!以免退出找 ...

  10. php+html5使用FormData对象提交表单及上传图片的方法

    php+html5使用FormData对象提交表单及上传图片的方法 本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法.分享给大家供大家参考.具体分析如下: FormDa ...