Mybatis-plus自动生成基础代码
一、依赖导入
// swagger
compile 'io.springfox:springfox-swagger2:2.9.2'
compile 'io.springfox:springfox-swagger-ui:2.9.2'
compile 'com.github.xiaoymin:swagger-bootstrap-ui:1.9.6'
compile('ch.qos.logback:logback-core:1.2.3')
compile('ch.qos.logback:logback-classic:1.2.3')
// lombok
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.20'
// web依赖
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.4.2'
// 日志
testImplementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.30'
// mysql驱动
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.16'
// mybatis-plus 代码生成器
implementation group: 'com.baomidou', name: 'mybatis-plus-generator', version: '3.5.1'
// mybatis-plus
implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.4.2'
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version: '2.4.12'
二、代码生成工具类代码
/**
* @author xiazhonghui
* @create 2021/11/17 17:26
* @notes : 代码生成器
*/
public class GeneratorUtil {
public static void main(String[] args) {
// 数据库信息
FastAutoGenerator.create("jdbc:mysql://192.168.6.110:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC", "root", "root")
.globalConfig(builder -> {
builder.author("aHui") // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.dateType(DateType.TIME_PACK)
// 输出文件目录
.outputDir(System.getProperty("user.dir") + "\\src\\main\\java\\"); // 指定输出目录
})
.packageConfig(builder -> {
// 包目录生成
builder.parent("com.example.demo") // 设置父包名
.moduleName("") // 设置父包模块名
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
// .mapperXml("mapper.xml")
.controller("controller")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,
// 设置mapperXml生成路径(System.getProperty("user.dir")代替绝对路径)
"D:\\project\\demo\\src\\main\\resources\\mapper"));
builder.other("config");
})
// 策略配置
.strategyConfig(builder -> {
// 开启大写命名
builder.enableCapitalMode();
// 设置为RestController
builder.controllerBuilder().enableRestStyle().formatFileName("%sAction");
builder.mapperBuilder().enableMapperAnnotation().enableBaseResultMap();
builder.serviceBuilder();
builder.entityBuilder()
.logicDeleteColumnName("is_deleted")
.logicDeletePropertyName("isDeleted")
.enableRemoveIsPrefix()
.enableLombok() // 开启lombok注解
.superClass(BaseEntity.class)
.versionColumnName("version")
// .enableActiveRecord()
.addIgnoreColumns("create_time", "update_time")
.addSuperEntityColumns("create_time", "update_time")
.addTableFills(new Column("create_time", FieldFill.INSERT))
.addTableFills(new Property("updateTime", FieldFill.INSERT_UPDATE))
.enableChainModel()
.enableTableFieldAnnotation();
// 生成entity对应实体类的表
builder.addInclude("tb_newbee_mall_admin_user", "tb_newbee_mall_carousel", "tb_newbee_mall_goods_category"
,"tb_newbee_mall_goods_info","tb_newbee_mall_index_config","tb_newbee_mall_order","tb_newbee_mall_order_item","tb_newbee_mall_shopping_cart_item"
,"tb_newbee_mall_user") // 设置需要生成的表名
// 过滤表的前缀
.addTablePrefix("tb_"); // 设置过滤表前缀
})
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}