简介
MyBatis Plus 是一个MyBatis的增强工具,内置通用mapper,提供了基本的curd操作,简化了MyBatis的开发使用工作。
它提供了一个代码生成器工具,可以根据数据库表来自动生成entity、mapper、mapper xml、service、controller等模块的代码,简化项目的初始化工作。
本文示例所用版本:
MyBatis-Plus: 3.4.3.1
mybatis-plus-generator: 3.5.0
使用
maven依赖配置
1
2
3
4
5
6
7
8
9
10
11
|
<!-- mybatis-plus gen -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</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
|
package xyz.urzz.selfpubgservice;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class MybatisPlusGen {
public static final String DB_URL = "jdbc:mysql://${mysql_server}:3306/${db_name}";
public static final String DB_USERNAME = "user";
public static final String DB_PASSWD = "passwd";
public static final String MODULE = "self-pubg-service";
public static final String CODE_GEN_PATH = "/src/main/java";
public static final String CODE_AUTHOR = "urzz";
public static final String PACKAGE_PARENT = "xyz.urzz.self.pubg";
public static final String DB_TABLE_PREFIX = "t_";
public static void main(String[] args) {
// db config
DataSourceConfig dataSourceConfig = new DataSourceConfig
.Builder(DB_URL, DB_USERNAME, DB_PASSWD)
.build();
// code gen path config
String projectPath = System.getProperty("user.dir");
GlobalConfig globalConfig = new GlobalConfig.Builder()
.outputDir(projectPath + "/" + MODULE + CODE_GEN_PATH)
// 生成文件后是否打开目录(文件浏览器)
.openDir(false)
// 覆盖文件
//.fileOverride()
.author(CODE_AUTHOR)
.build();
// code gen package config
PackageConfig packageConfig = new PackageConfig.Builder()
// 包路径
.parent(PACKAGE_PARENT)
.build();
// code gen strategy config
StrategyConfig strategyConfig = new StrategyConfig.Builder()
// table prefix
.addTablePrefix(DB_TABLE_PREFIX)
.entityBuilder()
// table -> entity
.naming(NamingStrategy.underline_to_camel)
// column -> field
.columnNaming(NamingStrategy.underline_to_camel)
// entity add lombok
.enableLombok()
.mapperBuilder()
// mapper add column list
.enableBaseColumnList()
// mapper add column map
.enableBaseResultMap()
.build();
TemplateConfig templateConfig = new TemplateConfig.Builder()
// disable gen controller
.disable(TemplateType.CONTROLLER)
.build();
AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfig);
autoGenerator.global(globalConfig)
.strategy(strategyConfig)
.template(templateConfig)
.packageInfo(packageConfig);
autoGenerator.execute();
}
}
|
类生成的相关配置在下列的各个配置类中,示例中只是展示了部分的配置。
DataSourceConfig
数据库链接配置
PackageConfig
类的包路径等配置
StrategyConfig
生成策略配置
TemplateConfig
模板配置
GlobalConfig
全局配置
mybatis-plus-generator
默认使用velocity作为类生成的模板引擎,出了velocity之外,也提供了freemarker和beetl的实现。generator也支持自定义模板,如需自定义,可以继承 AbstractTemplateEngine
,参考 VelocityTemplateEngine
的实现。
使用生成器,极大的简化了项目的初始化工作,可以无需编写繁琐的entity到mapper到service的这一套代码,还是可以大大提升开发效率的。