您当前的位置: 首页 >  mybatis

Charge8

暂无认证

  • 1浏览

    0关注

    447博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MyBatis-Plus代码生成器(新)

Charge8 发布时间:2022-08-07 15:43:28 ,浏览量:1

官方文档-代码生成器配置新:https://baomidou.com/pages/981406/

在这里插入图片描述

MyBatis-Plus 新版代码生成器使用太方便了。基本上默认配置生成的代码就满足了我们常用的开发。

先引入代码生成器和模板引擎依赖:

    
    
      com.baomidou
      mybatis-plus-generator
      3.5.1
    
    
    
      org.apache.velocity
      velocity
      1.7
    

如果开启 swagger 和lombok时,你还需要引入它们的依赖。

一、代码生成器(新)工具类

根据官方文档做了简单调整,这里直接上代码:

/**
 * MyBatisPlus代码生成器(新),基本满足使用了。
 * 官方文档-代码生成器配置新:https://baomidou.com/pages/981406/
 *
 */
public class MyBatisPlusCodeGeneratorUtils {

    public static void main(String[] args) {

        /**
		 *
         * TODO 注意修改 TODO处的信息
         */
        runCodeGenerator();

    }

    /**
     * 快速生成
     */
    private static void runCodeGenerator() {
        FastAutoGenerator.create(getDataSourceConfig())
                .globalConfig(getGlobalConfig())
                .packageConfig(getPackageConfig())
                .strategyConfig(getStrategyConfig())
                /**
                 * 默认的是Velocity引擎模板。也可使用其他的。注意引入模板引擎依赖
                 */
                //.templateEngine(new BeetlTemplateEngine())
                //.templateEngine(new FreemarkerTemplateEngine())
                .execute();

    }



    /**
     * 数据库配置(DataSourceConfig)
     * @return
     */
    private static DataSourceConfig.Builder getDataSourceConfig() {
        /**
         * TODO 数据库配置
         */
        String url = "jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT";
        String username = "root";
        String password = "xxx";
        DataSourceConfig.Builder builder = new DataSourceConfig.Builder(url, username, password);
        return builder;
    }

    /**
     * 全局配置(GlobalConfig)
     * @return
     */
    private static Consumer getGlobalConfig() {
        Consumer consumer = new Consumer() {
            @Override
            public void accept(GlobalConfig.Builder builder) {
                builder.fileOverride() // 覆盖已生成文件
                        // 开启 swagger 模式
                        .enableSwagger()
                        // TODO 设置作者
                        .author("xxx")
                        // TODO 指定输出目录
                        .outputDir("D:\\xxx")
                        .build();
            }
        };
        return consumer;
    }

    /**
     * 包配置(PackageConfig)
     */
    private static Consumer getPackageConfig() {
        Consumer consumer = new Consumer() {
            @Override
            public void accept(PackageConfig.Builder builder) {
                builder
                        // TODO 设置父包模块名
                        //.moduleName("sysxxx")
                        // TODO 设置父包名
                        .parent("com.xxx")
                        // TODO 设置mapperXml生成路径
                        .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\xxx\\mapper"))
                        // 设置 Entity 包名
                        .entity("pojo")
                        // 设置 Service 包名
                        .service("service")
                        // 设置 Service Impl 包名
                        .serviceImpl("service.impl")
                        // 设置 Controller 包名
                        .controller("controller")
                        .build();
            }
        };
        return consumer;
    }

    /**
     * 策略配置(StrategyConfig)
     * @return
     */
    private static Consumer getStrategyConfig(){
        Consumer consumer = new Consumer() {
            @Override
            public void accept(StrategyConfig.Builder builder) {

                /**
                 * 策略配置
                 */
                builder .addTablePrefix("t_", "c_") // TODO 设置过滤表前缀
                        // TODO 设置需要生成的表
                        .addInclude("t_sys_user")
                       .build();

                /**
                 * Entity 策略配置
                 */
                builder.entityBuilder()
                        // 开启 lombok 模型
                        .enableLombok()
                        // 全局主键类型
                        .idType(IdType.AUTO)
                        // TODO 格式化文件名称
                        .formatFileName("%sDO")
                        .build();

                /**
                 * Mapper 策略配置
                 */
                builder.mapperBuilder()
                        // 启用 BaseResultMap 生成
                        .enableBaseResultMap()
                        // 启用 BaseColumnList
                        .enableBaseColumnList()
                        .build();

                /**
                 * Service 策略配置
                 */
                builder.serviceBuilder()
                        .formatServiceFileName("%sService")
                        .formatServiceImplFileName("%sServiceImpl")
                        .build();

                /**
                 * Controller 策略配置
                 */
                builder.controllerBuilder()
                        // 开启生成@RestController 控制器
                        .enableRestStyle()
                        // 转换文件名称
                        .formatFileName("%sController")
                        .build();
            }
        };
        return consumer;
    }

}

– 求知若饥,虚心若愚。

关注
打赏
1664721914
查看更多评论
立即登录/注册

微信扫码登录

0.0393s