@SpringBootTest
public class CodeGenerator {
@Test
public void generate(){
String projectPath = System.getProperty("user.dir");
String outputPath = projectPath + "/src/main/java";
FastAutoGenerator.create("jdbc:mysql://mysql.xxx.com:3306/fisrtbqy?serverTimezone=GMT%2B8",
"fisrtbqy",
"password_fisrtbqy")
.globalConfig(builder -> {
builder.author("FisrtBqy") // 设置作者
//.enableSwagger() // 开启 swagger 模式
.enableSpringdoc() // 开启swagger3模式
.dateType(DateType.ONLY_DATE) //时间策略
.commentDate("yyyy-MM-dd") //注释日期
.disableOpenDir()
//.fileOverride() // 覆盖已生成文件
.outputDir(outputPath); // 指定输出目录
})
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER;
}
if (typeCode == Types.TINYINT) {
return DbColumnType.BOOLEAN;
}
return typeRegistry.getColumnType(metaInfo);
}))
.packageConfig(builder -> {
builder.parent("com.fisrtbqy.service") // 设置父包名
.moduleName("edu") // 设置父包模块名
.controller("controller")
.entity("entity")
.service("service")
.mapper("mapper")
//.pathInfo(Collections.singletonMap(OutputFile.xml, outputPath)); // 设置mapperXml生成路径
;
})
.strategyConfig(builder -> {
builder.addInclude("edu_chapter", "edu_comment", "edu_course", "edu_course_collect",
"edu_course_description", "edu_subject", "edu_video", "edu_teacher") // 设置需要生成的表名
.addTablePrefix("edu_", "t_", "c_") // 设置过滤表前缀
.enableCapitalMode()
//Entity策略
.entityBuilder()
.enableLombok()
.enableChainModel()
.naming(NamingStrategy.underline_to_camel)
.columnNaming(NamingStrategy.underline_to_camel)
.logicDeleteColumnName("is_deleted")
//.logicDeletePropertyName("is_deleted")
.enableRemoveIsPrefix() //去掉boolean值的is_前缀
.addTableFills(new Column("gmt_create", FieldFill.INSERT)) // 自动填充配置
.addTableFills(new Column("gmt_modified", FieldFill.INSERT_UPDATE))
.idType(IdType.ASSIGN_ID)
.formatFileName("%s")
.superClass("com.gurid.service.base.model.BaseEntity") // 设置baseEntity
.addSuperEntityColumns("id", "gmt_create", "gmt_modified") //设置公共字段
.enableFileOverride() // 覆盖已生成文件
//Controller策略
.controllerBuilder()
.enableRestStyle() //开启@RestController
.enableHyphenStyle() //url中驼峰转换为连字符 www.xxx.com/asdEva转换为www.xxx.com/asd-eva
.formatFileName("%sController") //Controller文件名称
.enableFileOverride() // 覆盖已生成文件
//Service策略
.serviceBuilder()
.formatServiceFileName("%sService") //Service文件名称
.formatServiceImplFileName("%sServiceImpl") //ServiceImpl文件名称
.enableFileOverride() // 覆盖已生成文件
//Mapper策略
.mapperBuilder()
.formatMapperFileName("%sMapper")
.disableMapperXml()
.enableFileOverride() // 覆盖已生成文件
;
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
//.templateEngine(new EnjoyTemplateEngine())
.execute();
}
}
Mybatis-Plus代码生成器配置
最新推荐文章于 2024-05-28 15:38:25 发布