Document

Mybatis-plus自动生成代码

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();
        
    }
}

posted @ 2021-11-26 18:39  阿辉ya  阅读(159)  评论(0编辑  收藏  举报