MybatisPlus代码生成器
- 一、简介
- 二、使用教程
- 2.1 添加依赖
- 2.2 编写配置
- 2.2.1 全局配置
- 2.2.2 数据源配置
- 2.2.3 策略配置
- 2.2.4 包名策略配置
- 2.2.5 整合配置
- 2.2.6 执行
- 2.2.7 配置的完整代码:
- 2.2.8 官方文档地址
一、简介
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
二、使用教程
2.1 添加依赖
MyBatis-Plus 从 3.0.3
之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:
- 添加代码生成器依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
- 添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
Velocity(默认):
代码语言:javascript复制<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
Freemarker:
代码语言:javascript复制<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
Beetl:
代码语言:javascript复制<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.3.2.RELEASE</version>
</dependency>
注意!如果您选择了非默认引擎,需要在 AutoGenerator 中 设置模板引擎。
代码语言:javascript复制AutoGenerator generator = new AutoGenerator();
// set freemarker engine
generator.setTemplateEngine(new FreemarkerTemplateEngine());
// set beetl engine
generator.setTemplateEngine(new BeetlTemplateEngine());
// set custom engine (reference class is your custom engine class)
generator.setTemplateEngine(new CustomTemplateEngine());
// other config
...
2.2 编写配置
2.2.1 全局配置
代码语言:javascript复制 //1、全局配置
GlobalConfig config=new GlobalConfig();
config.setActiveRecord(true) //是否支持AR模式
.setAuthor("xiongtete") //作者
.setOutputDir(System.getProperty("user.dir") "/src/main/java") //user.dir获取到你当前工程的 src 目录路径 //生成路径
.setFileOverride(true) //文件覆盖
.setIdType(IdType.AUTO) //主键策略
.setServiceName("%sService") //设置生成的service接口的名字的首字母是否为I
.setBaseResultMap(true)
.setBaseColumnList(true);
2.2.2 数据源配置
代码语言:javascript复制 //2、数据源配置
DataSourceConfig dataSourceConfig=new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) //设置数据库类型
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/mp?&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true")
.setUsername("root")
.setPassword("123456");
2.2.3 策略配置
代码语言:javascript复制//3、策略配置
StrategyConfig strategyConfig=new StrategyConfig();
strategyConfig.setCapitalMode(true) //开启全局大写命名
.setNaming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略
.setTablePrefix("tbl_") //表前缀
.setInclude("tbl_employee"); //生成的表
2.2.4 包名策略配置
代码语言:javascript复制 //4、包名策略配置
PackageConfig packageConfig=new PackageConfig();
packageConfig.setParent("com.baomidou.mybatisplus")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("beans");
2.2.5 整合配置
代码语言:javascript复制 AutoGenerator generator=new AutoGenerator();
generator.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
2.2.6 执行
代码语言:javascript复制//6、执行
generator.execute();
2.2.7 配置的完整代码:
代码语言:javascript复制 /**
* 代码生成 示例代码
*/
@Test
public void testGenerator(){
//1、全局配置
GlobalConfig config=new GlobalConfig();
config.setActiveRecord(true) //是否支持AR模式
.setAuthor("xiongtete") //作者
.setOutputDir(System.getProperty("user.dir") "/src/main/java") //user.dir获取到你当前工程的 src 目录路径 //生成路径
.setFileOverride(true) //文件覆盖
.setIdType(IdType.AUTO) //主键策略
.setServiceName("%sService") //设置生成的service接口的名字的首字母是否为I
.setBaseResultMap(true)
.setBaseColumnList(true);
//2、数据源配置
DataSourceConfig dataSourceConfig=new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) //设置数据库类型
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/mp?&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true")
.setUsername("root")
.setPassword("123456");
//3、策略配置
StrategyConfig strategyConfig=new StrategyConfig();
strategyConfig.setCapitalMode(true) //开启全局大写命名
.setNaming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略
.setTablePrefix("tbl_") //表前缀
.setInclude("tbl_employee"); //生成的表
//4、包名策略配置
PackageConfig packageConfig=new PackageConfig();
packageConfig.setParent("com.baomidou.mybatisplus")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("beans");
//5、整合配置
AutoGenerator generator=new AutoGenerator();
generator.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6、执行
generator.execute();
}
执行之后的生成的目录结构:
2.2.8 官方文档地址
官方文档:https://mp.baomidou.com/guide/generator.html#使用教程