目录
运行效果展示
jar包引入
CodeGenerator
com.baomidou mybatis-plus-boot-starter 最新版本 com.baomidou mybatis-plus-generator 最新版本 org.freemarker freemarker org.jetbrains annotations 22.0.0
/**
* @author 小王八
* @date 2022-09-05
* @Description:
*/
public class CodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://xxxxxx:3306/xxxxx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai","数据库用户名","数据库密码")
// 全局配置
.globalConfig((scanner, builder) -> builder
.author(scanner.apply("请输入作者名称?")).fileOverride()
// 开启 swagger 模式
.enableSwagger()
// 覆盖已生成文件
.fileOverride()
//禁止打开输出目录
.disableOpenDir()
//配置时间
.commentDate("yyyy-MM-dd")
// 指定输出目录
.outputDir(System.getProperty("user.dir")+"/src/main/java")
)
// 包配置
.packageConfig(builder -> {
// 设置父包名
builder.parent("com.demo.richText")
.entity("pojo")
.controller("controller")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"/src/main/resources/mapper")); // 设置mapperXml生成路径
})
// 策略配置
.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
//controller 配置
.controllerBuilder()
.formatFileName("%sController")
.enableRestStyle()
.enableHyphenStyle()
//service 配置
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
//pojo 配置
.entityBuilder()
.enableLombok()
//自动插入 更新时间 创造时间
.addTableFills(new Column("gmt_create", FieldFill.INSERT))
.addTableFills(new Column("gmt_update",FieldFill.INSERT_UPDATE))
.enableTableFieldAnnotation()
//mapper 配置
.mapperBuilder()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper")
.build())
/*
模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
.templateEngine(new BeetlTemplateEngine())
*/
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
// 处理 all 情况
protected static List getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}