Mybatis Plus Generator 3.5.2配置

pom依赖

<!--mybatis-plus代码生成器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>

单模块项目

package com.mybatis.plus.util;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.IFill;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Mybatis Plus Generator(单模块项目)
 *
 * @author √Angelの爱灬
 * @date 2022/8/25
 */
public class SingleModuleGenerator {
    
    /*数据源配置*/
    /**url*/
    static String url = "jdbc:mysql://localhost:3306/mybatis";
    /**用户名*/
    static String username = "root";
    /**密码*/
    static String password = "123456";

    /*全局配置*/
    /**输出目录*/
    static String outputDir = System.getProperty("user.dir") + "/src/main/java";
    /**作者*/
    static String author = "mybatis-plus-generator";
    /**时间策略*/
    static DateType dateType = DateType.TIME_PACK;
    /**注释日期*/
    static String commentDate = "yyyy-MM-dd HH:mm:ss";

    /*包配置*/
    /**父包名*/
    static String parentPackage = "com.mybatis.plus";
    /**父模块名(根据业务来填写,如果没有就是空)*/
    static String moduleName = "";
    /**controller包名*/
    static String controllerPackage = "controller";
    /**service接口包名*/
    static String servicePackage = "service";
    /**serviceImpl包名*/
    static String serviceImplPackage = "service.impl";
    /**实体类包名*/
    static String entityPackage = "entity";
    /**mapper接口包名*/
    static String mapperPackage = "mapper";
    /**xxMapper.xml文件的位置*/
    static String xmlPackage = System.getProperty("user.dir") + "/src/main/resources" + "/mybatis/mapper";
    /**自定义文件包名*/
    static String other = "other";

    /*模板配置*/
    /**禁用模板 本项目配置不生成 Service ServiceImpl Controller*/
    static TemplateType[] disableTemplateType = {
            //TemplateType.ENTITY,
            //TemplateType.MAPPER,
            //TemplateType.XML,
            TemplateType.SERVICE,
            TemplateType.SERVICEIMPL,
            TemplateType.CONTROLLER
    };


    /*策略配置*/
    /**需要生成的表名*/
    static String[] tableNames = {"mybatis_plus_generator"};
    /**过滤表名前缀*/
    static String tablePrefix = "mybatis_plus_";
    /**过滤表名后缀*/
    static String tableSuffix = "";
    /**过滤表字段后缀*/
    static String fieldPrefix = "";
    /**过滤表字段后缀*/
    static String fieldSuffix = "";

    /*Controller 策略*/
    /**设置 Controller 父类*/
    static String controllerSuperClass = "";
    /**格式化 Controller 接口名称。%s:表名。默认是"%sController"*/
    static String formatControllerName = "%sController";

    /*Service 策略*/
    /**设置 Service 父类*/
    static String superServiceClass = "";
    /**设置 ServiceImpl 父类*/
    static String superServiceImplClass = "";
    /**格式化 Service 名称*/
    static String formatServiceFileName = "%sService";
    /**格式化 ServiceImpl 名称*/
    static String formatServiceImplFileName = "%sServiceImpl";

    /*mapper接口以及xml文件策略*/
    /**实体类父类的全名*/
    static String mapperSuperClass = "";
    /**格式化mapper接口名称。%s:表名。默认是"%sMapper"*/
    static String formatMapperFileName = "%sMapper";
    /**格式化xml文件名称。%s:表名。默认是"%sMapper"*/
    static String formatXmlFileName = "%sMapper";

    /*entity 策略*/
    /**实体类父类的全名*/
    static String entitySuperClass = "";
    /**乐观锁字段名(数据库)*/
    static String versionColumnName = "";
    /**乐观锁属性名(实体)*/
    static String versionPropertyName = "";
    /**逻辑删除字段名(数据库)*/
    static String logicDeleteColumnName = "";
    /**逻辑删除属性名(实体)*/
    static String logicDeletePropertyName = "";
    /**添加父类公共字段*/
    static String[] superEntityColumns = {};
    /**添加忽略字段*/
    static String[] ignoreColumns = {};
    /**自动填充的字段和时机*/
    static List<IFill> fillColumns = new ArrayList<IFill>(){{
        add(new Column("create_time", FieldFill.INSERT));
        add(new Column("create_user", FieldFill.INSERT));
        add(new Column("modify_time", FieldFill.UPDATE));
        add(new Column("modify_user", FieldFill.UPDATE));
    }};
    /**格式化实体类名称。%s:表名。默认是"%s"*/
    static String formatFileName = "%s";

    public static void main(String[] args) {
        // 生成器
        FastAutoGenerator.create(url, username, password)
                // 全局配置
                .globalConfig(builder -> builder
                        .disableOpenDir()                   // 禁止打开输出目录
                        .outputDir(outputDir)               // 指定输出目录
                        .author(author)                     // 设置作者
                        .dateType(dateType)                 // 时间策略
                        .commentDate(commentDate)           // 注释日期
                        .enableSwagger()                    // 开启 swagger 模式
                        .build())
                // 包配置
                .packageConfig(builder -> builder
                        .parent(parentPackage)              // 父包名
                        .moduleName(moduleName)             // 父包模块名
                        .controller(controllerPackage)      // Controller 包名
                        .service(servicePackage)            // Service 包名
                        .serviceImpl(serviceImplPackage)    // ServiceImpl 包名
                        .mapper(mapperPackage)              // Mapper 包名
                        .entity(entityPackage)              // Entity 包名
                        .other(other)                       // 输出自定义文件时所用到的包名
                        // 设置mapperXml生成路径
                        .pathInfo(Collections.singletonMap(OutputFile.xml, xmlPackage))
                        .build())
                // 模板配置
                .templateConfig(builder -> builder
                        .disable(disableTemplateType)
                        .build()
                )
                // 策略配置
                .strategyConfig(builder -> builder
                        .addInclude(tableNames)         // 设置需要生成的表名
                        .addTablePrefix(tablePrefix)    // 设置过滤表名前缀
                        .addTableSuffix(tableSuffix)    // 设置过滤表名后缀
                        .addFieldPrefix(fieldPrefix)    // 设置过滤表字段前缀
                        .addFieldSuffix(fieldSuffix)    // 设置过滤表字段后缀

                        // Controller 策略
                        .controllerBuilder()
                        .fileOverride()                         // 覆盖已生成文件
                        .superClass(controllerSuperClass)       // Controller父类
                        .enableRestStyle()                      // 开启生成 @RestController 控制器
                        .formatFileName(formatControllerName)   // 格式化 Controller 接口名称。%s:表名。默认是"%sController"

                        // Service 策略
                        .serviceBuilder()
                        // 覆盖已生成文件
                        .fileOverride()
                        // 设置 service 接口父类
                        .superServiceClass(StringUtils.isEmpty(superServiceClass) ? ConstVal.SUPER_SERVICE_CLASS : superServiceClass)
                        // 设置 service 实现类父类
                        .superServiceImplClass(StringUtils.isEmpty(superServiceImplClass) ? ConstVal.SUPER_SERVICE_IMPL_CLASS : superServiceImplClass)
                        .formatServiceFileName(formatServiceFileName)           // 格式化 service 接口名称。%s:表名。默认是"I%sService"
                        .formatServiceImplFileName(formatServiceImplFileName)   // 格式化 service 实现类名称。%s:表名。默认是"%sServiceImpl"

                        // mapper策略
                        .mapperBuilder()
                        .fileOverride()                             // 覆盖已生成文件
                        // mapper接口的父类
                        .superClass(StringUtils.isEmpty(mapperSuperClass) ? ConstVal.SUPER_MAPPER_CLASS : mapperSuperClass)
                        //.enableMapperAnnotation()                   // 开启 @Mapper 注解
                        .enableBaseResultMap()                      // 启用 BaseResultMap 生成
                        .enableBaseColumnList()                     // 启用 BaseColumnList
                        .formatMapperFileName(formatMapperFileName) // 格式化mapper接口名称。%s:表名。默认是"%sMapper"
                        .formatXmlFileName(formatXmlFileName)       // 格式化xml文件名称。%s:表名。默认是"%sMapper"

                        // entity 策略
                        .entityBuilder()
                        .fileOverride()                                     // 覆盖已生成文件
                        .superClass(entitySuperClass)                       // 实体类的父类
                        .enableLombok()                                     // 开启 Lombok 注解
                        .enableTableFieldAnnotation()                       // 开启生成实体时生成字段注解
                        .enableActiveRecord()                               // 开启 ActiveRecord 模型
                        .versionColumnName(versionColumnName)               // 乐观锁字段名(数据库)
                        .versionPropertyName(versionPropertyName)           // 乐观锁属性名(实体)
                        .logicDeleteColumnName(logicDeleteColumnName)       // 逻辑删除字段名(数据库)
                        .logicDeletePropertyName(logicDeletePropertyName)   // 逻辑删除属性名(实体)
                        .addSuperEntityColumns(superEntityColumns)          // 添加父类公共字段
                        .addIgnoreColumns(ignoreColumns)                    // 添加忽略字段
                        .addTableFills(fillColumns)                         // 自动填充字段
                        .formatFileName(formatFileName)                     // 格式化实体类名称。%s:表名。默认是"%s"

                        .build())
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }

}

多模块项目

package com.mybatis.plus.util;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.IFill;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.*;

/**
 * Mybatis Plus Generator(多模块项目)
 *
 * @author √Angelの爱灬
 * @date 2022/8/25
 */
public class MultiModuleGenerator {

    /*数据源配置*/
    /**url*/
    static String url = "jdbc:mysql://localhost:3306/mybatis";
    /**用户名*/
    static String username = "root";
    /**密码*/
    static String password = "123456";

    /*全局配置*/
    /**输出目录*/
    static String outputDir = System.getProperty("user.dir") + "/src/main/java";
    /**作者*/
    static String author = "mybatis-plus-generator";
    /**时间策略*/
    static DateType dateType = DateType.TIME_PACK;
    /**注释日期*/
    static String commentDate = "yyyy-MM-dd HH:mm:ss";

    /*包配置*/
    /**实体类包名*/
    static String entityPackageName =       "com.generator.entity";
    /**mapper接口包名*/
    static String mapperPackageName =       "com.generator.mapper";
    /**service接口包名*/
    static String servicePackageName =      "com.generator.service";
    /**service实现类包名*/
    static String serviceImplPackageName =  "com.generator.service.impl";
    /**controller包名*/
    static String controllerPackageName =   "com.generator.controller";
    /**
     * 各文件的输出路径
     * @return pathInfo
     */
    public static Map<OutputFile, String> pathInfo() {
        // 基础路径
        String basePath = System.getProperty("user.dir");
        // java代码的路径
        String javaPath = "/src/main/java";
        // 资源文件的路径
        String resourcePath = "/src/main/resources";

        /*存放各文件的项目名(单模块项目不用配置)*/
        String xmlProject =         "";
        String entityProject =      "";
        String mapperProject =      "";
        String serviceProject =     "";
        String serviceImplProject = "";
        String controllerProject =  "";

        /*存放各文件的包路径*/
        String xmlPackage =         "/mybatis/mapper";
        String entityPackage =      "/com.generator/entity";
        String mapperPackage =      "/com.generator/mapper";
        String servicePackage =     "/com.generator/service";
        String serviceImplPackage = "/com.generator/service/impl";
        String controllerPackage =  "/com.generator/controller";

        Map<OutputFile, String> pathInfo = new HashMap<>(6);
        pathInfo.put(OutputFile.xml, basePath + xmlProject + resourcePath + xmlPackage);
        pathInfo.put(OutputFile.entity, basePath + entityProject + javaPath + entityPackage);
        pathInfo.put(OutputFile.mapper, basePath + mapperProject + javaPath + mapperPackage);
        pathInfo.put(OutputFile.service, basePath + serviceProject + javaPath + servicePackage);
        pathInfo.put(OutputFile.serviceImpl, basePath + serviceImplProject + javaPath + serviceImplPackage);
        pathInfo.put(OutputFile.controller, basePath + controllerProject + javaPath + controllerPackage);
        return pathInfo;
    }

    /*模板配置*/
    /**禁用模板 本项目配置不生成 Service ServiceImpl Controller*/
    static TemplateType[] disableTemplateType = {
            //TemplateType.ENTITY,
            //TemplateType.MAPPER,
            //TemplateType.XML,
            TemplateType.SERVICE,
            TemplateType.SERVICEIMPL,
            TemplateType.CONTROLLER
    };

    /*策略配置*/
    /**需要生成的表名*/
    static String[] tableNames = {"mybatis_plus_generator"};
    /**过滤表名前缀*/
    static String tablePrefix = "mybatis_plus_";
    /**过滤表名后缀*/
    static String tableSuffix = "";
    /**过滤表字段后缀*/
    static String fieldPrefix = "";
    /**过滤表字段后缀*/
    static String fieldSuffix = "";

    /*Controller 策略*/
    /**设置 Controller 父类*/
    static String controllerSuperClass = "";
    /**格式化 Controller 接口名称。%s:表名。默认是"%sController"*/
    static String formatControllerName = "%sController";

    /*Service 策略*/
    /**设置 Service 父类*/
    static String superServiceClass = "";
    /**设置 ServiceImpl 父类*/
    static String superServiceImplClass = "";
    /**格式化 Service 名称*/
    static String formatServiceFileName = "%sService";
    /**格式化 ServiceImpl 名称*/
    static String formatServiceImplFileName = "%sServiceImpl";

    /*mapper接口以及xml文件策略*/
    /**实体类父类的全名*/
    static String mapperSuperClass = "";
    /**格式化mapper接口名称。%s:表名。默认是"%sMapper"*/
    static String formatMapperFileName = "%sMapper";
    /**格式化xml文件名称。%s:表名。默认是"%sMapper"*/
    static String formatXmlFileName = "%sMapper";

    /*entity 策略*/
    /**实体类父类的全名*/
    static String entitySuperClass = "";
    /**乐观锁字段名(数据库)*/
    static String versionColumnName = "";
    /**乐观锁属性名(实体)*/
    static String versionPropertyName = "";
    /**逻辑删除字段名(数据库)*/
    static String logicDeleteColumnName = "";
    /**逻辑删除属性名(实体)*/
    static String logicDeletePropertyName = "";
    /**添加父类公共字段*/
    static String[] superEntityColumns = {};
    /**添加忽略字段*/
    static String[] ignoreColumns = {};
    /**自动填充的字段和时机*/
    static List<IFill> fillColumns = new ArrayList<IFill>(){{
        add(new Column("create_time", FieldFill.INSERT));
        add(new Column("create_user", FieldFill.INSERT));
        add(new Column("modify_time", FieldFill.UPDATE));
        add(new Column("modify_user", FieldFill.UPDATE));
    }};
    /**格式化实体类名称。%s:表名。默认是"%s"*/
    static String formatFileName = "%s";

    public static void main(String[] args) {
        // 生成器
        FastAutoGenerator.create(url, username, password)
                // 全局配置
                .globalConfig(builder -> builder
                        .disableOpenDir()                   // 禁止打开输出目录
                        .outputDir(outputDir)               // 指定输出目录
                        .author(author)                     // 设置作者
                        .dateType(dateType)                 // 时间策略
                        .commentDate(commentDate)           // 注释日期
                        .enableSwagger()                    // 开启 swagger 模式
                        .build())
                // 包配置
                .packageConfig(builder -> builder
                        .controller(controllerPackageName)      // Controller 包名
                        .service(servicePackageName)            // Service 包名
                        .serviceImpl(serviceImplPackageName)    // ServiceImpl 包名
                        .mapper(mapperPackageName)              // Mapper 包名
                        .entity(entityPackageName)              // Entity 包名
                        // 设置mapperXml生成路径
                        .pathInfo(pathInfo())
                        .build())
                // 模板配置
                .templateConfig(builder -> builder
                        .disable(disableTemplateType)
                        .build()
                )
                // 策略配置
                .strategyConfig(builder -> builder
                        .addInclude(tableNames)         // 设置需要生成的表名
                        .addTablePrefix(tablePrefix)    // 设置过滤表名前缀
                        .addTableSuffix(tableSuffix)    // 设置过滤表名后缀
                        .addFieldPrefix(fieldPrefix)    // 设置过滤表字段前缀
                        .addFieldSuffix(fieldSuffix)    // 设置过滤表字段后缀

                        // Controller 策略
                        .controllerBuilder()
                        .fileOverride()                         // 覆盖已生成文件
                        .superClass(controllerSuperClass)       // Controller父类
                        .enableRestStyle()                      // 开启生成 @RestController 控制器
                        .formatFileName(formatControllerName)   // 格式化 Controller 接口名称。%s:表名。默认是"%sController"

                        // Service 策略
                        .serviceBuilder()
                        // 覆盖已生成文件
                        .fileOverride()
                        // 设置 service 接口父类
                        .superServiceClass(StringUtils.isEmpty(superServiceClass) ? ConstVal.SUPER_SERVICE_CLASS : superServiceClass)
                        // 设置 service 实现类父类
                        .superServiceImplClass(StringUtils.isEmpty(superServiceImplClass) ? ConstVal.SUPER_SERVICE_IMPL_CLASS : superServiceImplClass)
                        .formatServiceFileName(formatServiceFileName)           // 格式化 service 接口名称。%s:表名。默认是"I%sService"
                        .formatServiceImplFileName(formatServiceImplFileName)   // 格式化 service 实现类名称。%s:表名。默认是"%sServiceImpl"

                        // mapper策略
                        .mapperBuilder()
                        .fileOverride()                             // 覆盖已生成文件
                        // mapper接口的父类
                        .superClass(StringUtils.isEmpty(mapperSuperClass) ? ConstVal.SUPER_MAPPER_CLASS : mapperSuperClass)
                        //.enableMapperAnnotation()                   // 开启 @Mapper 注解
                        .enableBaseResultMap()                      // 启用 BaseResultMap 生成
                        .enableBaseColumnList()                     // 启用 BaseColumnList
                        .formatMapperFileName(formatMapperFileName) // 格式化mapper接口名称。%s:表名。默认是"%sMapper"
                        .formatXmlFileName(formatXmlFileName)       // 格式化xml文件名称。%s:表名。默认是"%sMapper"

                        // entity 策略
                        .entityBuilder()
                        .fileOverride()                                     // 覆盖已生成文件
                        .superClass(entitySuperClass)                       // 实体类的父类
                        .enableLombok()                                     // 开启 Lombok 注解
                        .enableTableFieldAnnotation()                       // 开启生成实体时生成字段注解
                        .enableActiveRecord()                               // 开启 ActiveRecord 模型
                        .versionColumnName(versionColumnName)               // 乐观锁字段名(数据库)
                        .versionPropertyName(versionPropertyName)           // 乐观锁属性名(实体)
                        .logicDeleteColumnName(logicDeleteColumnName)       // 逻辑删除字段名(数据库)
                        .logicDeletePropertyName(logicDeletePropertyName)   // 逻辑删除属性名(实体)
                        .addSuperEntityColumns(superEntityColumns)          // 添加父类公共字段
                        .addIgnoreColumns(ignoreColumns)                    // 添加忽略字段
                        .addTableFills(fillColumns)                         // 自动填充字段
                        .formatFileName(formatFileName)                     // 格式化实体类名称。%s:表名。默认是"%s"

                        .build())
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上进行了扩展,提供了更加便捷的CRUD操作、分页、乐观锁、逻辑删除等功能。而MyBatis-Plus的代码生成器则是MyBatis-Plus中的一个子模块,用于生成基于MyBatis-Plus的CRUD代码。 MyBatis-Plus的代码生成器是一个基于Velocity模板引擎的代码生成器,支持生成Java、XML、SQL脚本等文件。使用MyBatis-Plus的代码生成器可以快速生成CRUD代码,减少手动编写代码的工作量。 下面是使用MyBatis-Plus3.5.2代码生成器生成代码的步骤: 1. 添加MyBatis-Plus的依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.2</version> </dependency> ``` 2. 编写代码生成器配置文件 在src/main/resources目录下创建generator.properties文件,编写代码生成器的配置信息,例如: ```properties # 数据库配置 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 jdbc.username=root jdbc.password=root # 代码生成器配置 outputDir=D:/code-generator author=MyBatis-Plus fileOverride=true openDir=false ``` 其中,jdbc.driver、jdbc.url、jdbc.username、jdbc.password是数据库的配置信息,outputDir是生成文件的输出目录,author是代码的作者,fileOverride是是否覆盖已有文件,openDir是是否打开输出目录。 3. 编写代码生成器模板文件 在src/main/resources/templates目录下创建模板文件,例如entity.java.vm、mapper.xml.vm、service.java.vm、serviceImpl.java.vm等,编写模板文件的内容。 模板文件中使用Velocity的语法,可以使用变量、条件语句、循环语句等,例如: ```java package ${packageName}; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * ${tableComment} */ @Data @TableName("${tableName}") public class ${entityName} { #foreach($column in $table.columns) /** * ${column.columnComment} */ private ${column.javaType} ${column.fieldName}; #end } ``` 在模板文件中,$packageName、$tableComment、$tableName、$entityName、$table.columns等都是变量,会根据生成器配置文件和数据库表的信息动态替换为具体的值。 4. 运行代码生成器 编写好配置文件和模板文件后,就可以运行代码生成器了。在Java代码中使用CodeGenerator类,并传入配置文件和模板文件的路径,即可启动代码生成器,例如: ```java public class MybatisPlusGenerator { public static void main(String[] args) { String configFile = "generator.properties"; String templatePath = "/templates/%s.vm"; AutoGenerator generator = new AutoGenerator(); // 全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setAuthor(PropertyUtil.getProperty(configFile, "author")); globalConfig.setFileOverride(Boolean.parseBoolean(PropertyUtil.getProperty(configFile, "fileOverride"))); globalConfig.setOpen(Boolean.parseBoolean(PropertyUtil.getProperty(configFile, "openDir"))); globalConfig.setOutputDir(PropertyUtil.getProperty(configFile, "outputDir")); generator.setGlobalConfig(globalConfig); // 数据源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL); dataSourceConfig.setDriverName(PropertyUtil.getProperty(configFile, "jdbc.driver")); dataSourceConfig.setUrl(PropertyUtil.getProperty(configFile, "jdbc.url")); dataSourceConfig.setUsername(PropertyUtil.getProperty(configFile, "jdbc.username")); dataSourceConfig.setPassword(PropertyUtil.getProperty(configFile, "jdbc.password")); generator.setDataSource(dataSourceConfig); // 包配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent(PropertyUtil.getProperty(configFile, "package")); generator.setPackageInfo(packageConfig); // 自定义配置 InjectionConfig injectionConfig = new InjectionConfig() { @Override public void initMap() { } }; injectionConfig.setFileOutConfigList(getFileOutConfigList(templatePath)); generator.setCfg(injectionConfig); // 配置模板 TemplateConfig templateConfig = new TemplateConfig(); templateConfig.setXml(null); generator.setTemplate(templateConfig); // 策略配置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setNaming(NamingStrategy.underline_to_camel); strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); strategyConfig.setEntityLombokModel(true); strategyConfig.setRestControllerStyle(true); strategyConfig.setInclude(PropertyUtil.getProperty(configFile, "tableNames").split(",")); generator.setStrategy(strategyConfig); generator.execute(); } private static List<FileOutConfig> getFileOutConfigList(String templatePath) { List<FileOutConfig> fileOutConfigList = new ArrayList<>(); fileOutConfigList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { return String.format("%s/%s%s", PropertyUtil.getProperty("generator.properties", "outputDir"), tableInfo.getEntityName(), this.getSuffix()); } }); return fileOutConfigList; } } ``` 在代码中,使用AutoGenerator配置全局配置、数据源配置、包配置、自定义配置、模板配置、策略配置等,然后调用execute()方法即可生成代码。 总结:使用MyBatis-Plus的代码生成器可以快速生成基于MyBatis-Plus的CRUD代码,减少手动编写代码的工作量,提高开发效率。需要注意的是,生成的代码只是基础代码,需要根据具体业务进行修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值