MyBatis-Plus代码生成器

本文最后更新于:2023年11月9日 晚上

MyBatis-Plus代码生成器

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

1.在SpringBoot项目中导入Maven依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--Velocity-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>

2.编写配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
    @Test
public void code() {

/*创建代码生成器对象*/
AutoGenerator autoGenerator = new AutoGenerator();

/*1.全局配置*/
GlobalConfig gc = new GlobalConfig();
/*获取当前项目路径*/
String property = System.getProperty("user.dir");
/*生成文件的输出目录*/
gc.setOutputDir(property + "/src/main/java");
/*开发人员*/
gc.setAuthor("阿波");
/*是否打开输出目录*/
gc.setOpen(false);
/*是否覆盖已有文件*/
gc.setFileOverride(false);
/*指定生成的主键的ID类型*/
gc.setIdType(IdType.ID_WORKER);
/*去除Service的I前缀*/
gc.setServiceName("%sService");
/*时间类型对应策略*/
gc.setDateType(DateType.ONLY_DATE);
/*开启swagger2模式*/
gc.setSwagger2(true);
/*是否在xml中添加二级缓存配置*/
gc.setEnableCache(true);

/*将配置添加进代码生成器对象*/
autoGenerator.setGlobalConfig(gc);

/*2.配置数据源*/
DataSourceConfig dataSource = new DataSourceConfig();
/*驱动连接的URL*/
dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=Asia/Shanghai");
/*驱动名称*/
dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
/*数据库连接用户名*/
dataSource.setUsername("root");
/*数据库连接密码*/
dataSource.setPassword("libo");
/*数据类型*/
dataSource.setDbType(DbType.MYSQL);

/*将配置添加进代码生成器对象*/
autoGenerator.setDataSource(dataSource);

/*3.包的配置*/
PackageConfig pc = new PackageConfig();
/*父包模块名*/
pc.setModuleName("codeTest");
/*父包名*/
pc.setParent("com.libo");
/*Controller包名*/
pc.setController("controller");
/**Entity包名/
pc.setEntity("entity");
/*Mapper包名*/
pc.setMapper("mapper");
/*Service包名*/
pc.setService("service");

/*将配置添加进代码生成器对象*/
autoGenerator.setPackageInfo(pc);

/*4.策略配置*/
StrategyConfig strategy = new StrategyConfig();
/*设置映射的表名*/
strategy.setInclude("user");
/*数据库表映射到实体的命名策略*/
strategy.setNaming(NamingStrategy.underline_to_camel);
/*数据库表字段映射到实体的命名策略*/
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
/*是否为lombok模型*/
strategy.setEntityLombokModel(true);
/*逻辑删除属性名称*/
strategy.setLogicDeleteFieldName("deleted");
/*乐观锁属性名称*/
strategy.setVersionFieldName("version");
/*自动填充*/
TableFill cteateTime = new TableFill("cteate_time", FieldFill.INSERT_UPDATE);
TableFill updateTime = new TableFill("update_time", FieldFill.UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(cteateTime);
tableFills.add(updateTime);
strategy.setTableFillList(tableFills);
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);

/*将配置添加进代码生成器对象*/
autoGenerator.setStrategy(strategy);


/*执行*/
autoGenerator.execute();
}

3.运行后的效果

如果不能忠于自己的心,胜负又有什么价值呢?

MyBatis-Plus代码生成器
http://example.com/2020/12/28/MyBatis-Plus代码生成器/
作者
阿波~
发布于
2020年12月28日
更新于
2023年11月9日
许可协议