MyBatis-Plus代码生成器
MybatisPlus 给我们提供了更加强大的代码生成器
代码生成器,根据数据库生成实体类,dao
,service
,controller
层代码以及 mapper
映射文件,简化开发
配置
在 pom 文件中添加如下依赖
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<!-- 版本 -->
<mybatisplus.version>3.2.0</mybatisplus.version>
<lang3.version>3.9</lang3.version>
<!-- mybatisplus代码生成器依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.29</version>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<!-- 加入 slf4j ,查看日志输出信息 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>复制如下代码到项目任意位置
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils;
import java.util.Scanner;
/**
* @author GarveyZhong
* @date 2020/5/19 11:25
*/
public class TestMp3 {
/**
* 作者名称
*/
private static final String AUTHOR = "GarveyZhong";
/**
* 生成的位置
*/
private static final String OUTPUT_DIR = "D:/代码生成/";
/**
* 驱动,注意版本
*/
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
/**
* 连接路径,注意修改数据库名称
*/
private static final String URL = "jdbc:mysql://localhost:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
/**
* 数据库用户名
*/
private static final String USERNAME = "root";
/**
* 数据库密码
*/
private static final String PASSWORD = "root";
/**
* 数据库表的前缀,如t_user
*/
private static final String TABLE_PREFIX = "t_";
/**
* 顶级包结构
*/
private static final String PARENT_PACKAGE = "com.zjw";
/**
* 数据访问层包名称
*/
private static final String DAO = "dao";
/**
* 业务逻辑层包名称
*/
private static final String SERVICE = "service";
/**
* 实体层包名称
*/
private static final String ENTITY = "entity";
/**
* 控制器层包名称
*/
private static final String CONTROLLER = "controller";
/**
* mapper映射文件包名称
*/
private static final String MAPPER_XML = "mapper";
/**
* 模块名
*/
private static final String MODULE_NAME = "sys";
/**
* 读取控制台内容
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
// 1. 全局配置
GlobalConfig config = new GlobalConfig();
config.setAuthor(AUTHOR) // 作者
// 生成路径
.setOutputDir(OUTPUT_DIR)
// 文件覆盖
.setFileOverride(true)
// 主键策略
.setIdType(IdType.AUTO)
// 设置生成的service接口的名字的首字母是否为I,加%s则不生成I
.setServiceName("%sService")
// 映射文件中是否生成ResultMap配置
.setBaseResultMap(true)
// 生成通用sql字段
.setBaseColumnList(true);
//2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
// 设置数据库类型
dsConfig.setDbType(DbType.MYSQL)
//设置驱动
.setDriverName(DRIVER)
//设置连接路径
.setUrl(URL)
//设置用户名
.setUsername(USERNAME)
//设置密码
.setPassword(PASSWORD);
//4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
// 顶级包结构
pkConfig.setParent(PARENT_PACKAGE)
//数据访问层
.setMapper(DAO)
//业务逻辑层
.setService(SERVICE)
//控制器
.setController(CONTROLLER)
//实体类
.setEntity(ENTITY)
//mapper映射文件
.setXml(MAPPER_XML)
//模块名;
.setModuleName(scanner("模块名"));
//3. 策略配置
StrategyConfig stConfig = new StrategyConfig();
//全局大写命名
stConfig.setCapitalMode(true)
// 数据库表映射到实体的命名策略
.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
//.setTablePrefix(tablePrefix) //表前缀
.setInclude(scanner("请输入表名(多个以英文逗号隔开):").split(","))
.setTablePrefix(pkConfig.getModuleName() + "_")
//.setInclude(tables) // 生成的表
.setControllerMappingHyphenStyle(true);
//5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6. 执行
ag.execute();
}
}运行 main 方法,输入相关信息,生成代码
至此代码就生成成功了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小嘉的部落格!
评论