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

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

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

    <!--  代码生成器  -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!--  代码生成器, velocity模板引擎  -->
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity</artifactId>
      <version>1.7</version>
    </dependency>

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

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

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

/**
 * MyBatisPlus代码生成器(新),基本满足使用了。
 * 官方文档-代码生成器配置新:https://baomidou/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<GlobalConfig.Builder> getGlobalConfig() {
        Consumer<GlobalConfig.Builder> consumer = new Consumer<GlobalConfig.Builder>() {
            @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<PackageConfig.Builder> getPackageConfig() {
        Consumer<PackageConfig.Builder> consumer = new Consumer<PackageConfig.Builder>() {
            @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<StrategyConfig.Builder> getStrategyConfig(){
        Consumer<StrategyConfig.Builder> consumer = new Consumer<StrategyConfig.Builder>() {
            @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;
    }

}

– 求知若饥,虚心若愚。

更多推荐

MyBatis-Plus代码生成器(新)