public class CodeGenerator {
public static void main(String[] args) {
// 数据源配置
FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/xdclass?useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "123456")
.globalConfig(builder -> {
builder.author("author") // 设置作者
.enableSpringdoc() // 开启 Springdoc 模式 默认值:false
.disableOpenDir() // 禁止打开输出目录 默认值:true
.commentDate("yyyy-MM-dd") // 注释日期
.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期类型 DateType.ONLY_DATE 默认值: DateType.TIME_PACK
.outputDir("D://autogenercode"); // 指定输出目录
})
.packageConfig(builder -> {
// TODO 配置包名
builder.parent("net.xdclass.xdvideo") // 父包模块名
.controller("controller") //Controller 包名 默认值:controller
.entity("domain") //Entity 包名 默认值:entity
.service("service") //Service 包名 默认值:service
.mapper("mapper") //Mapper 包名 默认值:mapper
//.moduleName("xxx") // 设置父包模块名 默认值:无
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://autogenercode")); // 设置mapperXml生成路径
//默认存放在mapper的xml下
})
.strategyConfig(builder -> {
builder.addInclude("user") // 设置需要生成的表名 可边长参数“user”, “user1”
.addTablePrefix("tb_", "gms_") // 设置过滤表前缀
.serviceBuilder()//service策略配置
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()// 实体类策略配置
.idType(IdType.AUTO)//主键策略 自增ID
.addTableFills(new Column("create_time", FieldFill.INSERT)) // 自动填充配置
.addTableFills(new Property("update_time", FieldFill.INSERT_UPDATE))
.enableLombok() //开启lombok
.logicDeleteColumnName("deleted")// 说明逻辑删除是哪个字段
.enableTableFieldAnnotation()// 属性加上注解说明
.controllerBuilder() //controller 策略配置
.formatFileName("%sController")
.enableRestStyle() // 开启RestController注解
.mapperBuilder()// mapper策略配置
.enableBaseResultMap() // 启用 BaseResultMap 生成
.enableBaseColumnList() // 启用 BaseColumnList 生成
.formatMapperFileName("%sMapper")
.formatXmlFileName("%sMapper");
})
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateEngine(new FreemarkerTemplateEngine())
// .templateEngine(new EnhanceFreemarkerTemplateEngine())
.execute();
}
}