MP代码生成器
MP代码生成器
使用方式
导入坐标
注意mybatis-plus-generator的版本必须为3.5.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<!--MybatisPlus、MybatisPlus生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>编写配置
1
2
3
4
5
6
7
8
9
10
11
12server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
mybatis:
mapper-locations:
- classpath:mapper/*.xml
- classpath*:com/**/mapper/*.xml编写代码,执行
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113package com.xw.mallLearning.generator;
/**
* 用于生产MBG的代码
*/
public class Generator {
// 基础信息配置
private static final String URL = "jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
private static final String PARENT_PACKAGE_NAME = "com.xw.mallLearning.generator"; // 包名
private static final String PROJECT_ROOT_PATH = System.getProperty("user.dir");
private static final String PROJECT_NAME = "mall-learning"; // 当前项目名称
private static final String MODULE_NAME = "mbg"; // 模块名称, 代码会生成在generator/MODULE_NAME下
/**
* 执行此处
*/
public static void main(String[] args) {
simpleGenerator();
}
protected static void simpleGenerator() {
// 添加需要自动生成代码的表名, 为空则生成所有表对应代码
List<String> tables = new ArrayList<>();
tables.add("pms_brand");
// 包路径
String packagePath = PROJECT_ROOT_PATH + "/" + PROJECT_NAME + "/src/main/java";
// XML文件的路径
String mapperXmlPath = PROJECT_ROOT_PATH + "/" + PROJECT_NAME + "/src/main/resources/mapper";
// 开始执行代码生成
FastAutoGenerator.create(URL, USERNAME, PASSWORD)
// 1. 全局配置
.globalConfig(builder -> builder
// 作者名称
.author("xw")
// 开启覆盖已生成的文件。注释掉则关闭覆盖。
.fileOverride()
// 禁止打开输出目录。注释掉则生成完毕后,自动打开生成的文件目录。
.disableOpenDir()
// 指定输出目录。如果指定,Windows生成至D盘根目录下,Linux or MAC 生成至 /tmp 目录下。
.outputDir(packagePath)
// 开启swagger2.注释掉则默认关闭。
// .enableSwagger()
// 指定时间策略。
.dateType(DateType.TIME_PACK)
// 注释时间策略。
.commentDate("yyyy-MM-dd")
)
// 2. 包配置
.packageConfig(builder -> builder
// 设置父表名
.parent(PARENT_PACKAGE_NAME)
.moduleName(MODULE_NAME)
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.controller("controller")
.mapper("mapper")
.xml("mapper")
// mapper.xml 文件的路径。单模块下,其他文件路径默认即可。
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperXmlPath))
)
// 3. 策略配置
.strategyConfig(builder -> builder.addInclude(tables)
// 阶段1:Entity实体类策略配置
.entityBuilder()
// 开启生成实体时生成字段注解。
// 会在实体类的属性前,添加[@TableField("nickname")]
.enableTableFieldAnnotation()
// 逻辑删除字段名(数据库)。
//.logicDeleteColumnName("is_delete")
// 逻辑删除属性名(实体)。
// 会在实体类的该字段属性前加注解[@TableLogic]
//.logicDeletePropertyName("isDelete")
// 会在实体类的该字段上追加注解[@TableField(value = "create_time", fill = FieldFill.INSERT)]
.addTableFills(new Column("create_time", FieldFill.INSERT))
// 会在实体类的该字段上追加注解[@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)]
.addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE))
// 阶段2:Mapper策略配置
.mapperBuilder()
// 开启 @Mapper 注解。
// 会在mapper接口上添加注解[@Mapper]
.enableMapperAnnotation()
// 启用 BaseResultMap 生成。
// 会在mapper.xml文件生成[通用查询映射结果]配置。
.enableBaseResultMap()
// 启用 BaseColumnList。
// 会在mapper.xml文件生成[通用查询结果列 ]配置
.enableBaseColumnList()
// 阶段4:Controller策略配置
.controllerBuilder()
// 会在控制类中加[@RestController]注解。
.enableRestStyle()
// 开启驼峰转连字符
.enableHyphenStyle()
.build()
)
// 4. 模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
//.templateEngine(new BeetlTemplateEngine())
.templateEngine(new FreemarkerTemplateEngine())
// 5. 执行
.execute();
}
}
MP代码生成器
http://xwww12.github.io/2023/02/03/数据库/mysql/mybatis-plus/MP代码生成器/