官方文档-代码生成器配置新:https://baomidou.com/pages/981406/
MyBatis-Plus 新版代码生成器使用太方便了。基本上默认配置生成的代码就满足了我们常用的开发。
先引入代码生成器和模板引擎依赖:
com.baomidou
mybatis-plus-generator
3.5.1
org.apache.velocity
velocity
1.7
如果开启 swagger 和lombok时,你还需要引入它们的依赖。
一、代码生成器(新)工具类根据官方文档做了简单调整,这里直接上代码:
/**
* MyBatisPlus代码生成器(新),基本满足使用了。
* 官方文档-代码生成器配置新:https://baomidou.com/pages/981406/
*
*/
public class MyBatisPlusCodeGeneratorUtils {
public static void main(String[] args) {
/**
*
* TODO 注意修改 TODO处的信息
*/
runCodeGenerator();
}
/**
* 快速生成
*/
private static void runCodeGenerator() {
FastAutoGenerator.create(getDataSourceConfig())
.globalConfig(getGlobalConfig())
.packageConfig(getPackageConfig())
.strategyConfig(getStrategyConfig())
/**
* 默认的是Velocity引擎模板。也可使用其他的。注意引入模板引擎依赖
*/
//.templateEngine(new BeetlTemplateEngine())
//.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
/**
* 数据库配置(DataSourceConfig)
* @return
*/
private static DataSourceConfig.Builder getDataSourceConfig() {
/**
* TODO 数据库配置
*/
String url = "jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT";
String username = "root";
String password = "xxx";
DataSourceConfig.Builder builder = new DataSourceConfig.Builder(url, username, password);
return builder;
}
/**
* 全局配置(GlobalConfig)
* @return
*/
private static Consumer getGlobalConfig() {
Consumer consumer = new Consumer() {
@Override
public void accept(GlobalConfig.Builder builder) {
builder.fileOverride() // 覆盖已生成文件
// 开启 swagger 模式
.enableSwagger()
// TODO 设置作者
.author("xxx")
// TODO 指定输出目录
.outputDir("D:\\xxx")
.build();
}
};
return consumer;
}
/**
* 包配置(PackageConfig)
*/
private static Consumer getPackageConfig() {
Consumer consumer = new Consumer() {
@Override
public void accept(PackageConfig.Builder builder) {
builder
// TODO 设置父包模块名
//.moduleName("sysxxx")
// TODO 设置父包名
.parent("com.xxx")
// TODO 设置mapperXml生成路径
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\xxx\\mapper"))
// 设置 Entity 包名
.entity("pojo")
// 设置 Service 包名
.service("service")
// 设置 Service Impl 包名
.serviceImpl("service.impl")
// 设置 Controller 包名
.controller("controller")
.build();
}
};
return consumer;
}
/**
* 策略配置(StrategyConfig)
* @return
*/
private static Consumer getStrategyConfig(){
Consumer consumer = new Consumer() {
@Override
public void accept(StrategyConfig.Builder builder) {
/**
* 策略配置
*/
builder .addTablePrefix("t_", "c_") // TODO 设置过滤表前缀
// TODO 设置需要生成的表
.addInclude("t_sys_user")
.build();
/**
* Entity 策略配置
*/
builder.entityBuilder()
// 开启 lombok 模型
.enableLombok()
// 全局主键类型
.idType(IdType.AUTO)
// TODO 格式化文件名称
.formatFileName("%sDO")
.build();
/**
* Mapper 策略配置
*/
builder.mapperBuilder()
// 启用 BaseResultMap 生成
.enableBaseResultMap()
// 启用 BaseColumnList
.enableBaseColumnList()
.build();
/**
* Service 策略配置
*/
builder.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.build();
/**
* Controller 策略配置
*/
builder.controllerBuilder()
// 开启生成@RestController 控制器
.enableRestStyle()
// 转换文件名称
.formatFileName("%sController")
.build();
}
};
return consumer;
}
}
– 求知若饥,虚心若愚。