MyBatis-Plus-Generator 3.5.2 配置详解

章绪
2023-12-01

官方用例

所需MAVEN依赖

<dependencies>
    <!--MyBatis-Plus代码生成器需要的依赖,开始-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.5.2</version>
    </dependency>
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.30</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.3.3</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!--MyBatis-Plus代码生成器需要的依赖,结束-->
</dependencies>

JAVA代码

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.PostgreSqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.keywords.PostgreSqlKeyWordsHandler;

import java.util.Collections;

public class CodeGen {

    //数据库信息(POSTGRESQL)
//    private static final String DRIVER_NAME = "org.postgresql.Driver";
    private static final String URL = "jdbc:postgresql://127.0.0.1:5432/test";
    private static final String USER_NAME = "postgres";
    private static final String PASSWORD = "123456";
    private static final DataSourceConfig.Builder DATA_CONFIG_BUILDER=
            new DataSourceConfig.Builder(URL,USER_NAME,PASSWORD)
                    .dbQuery(new PostgreSqlQuery())
                    .schema("public")
                    .typeConvert(new PostgreSqlTypeConvert())
                    .keyWordsHandler(new PostgreSqlKeyWordsHandler());

    public static void main(String[] args) {

        //parentPath: 项目路径--到/src/main 此处为默认值
        final String parentPath = System.getProperty("user.dir")+"/src/main";

        final String projectPath = parentPath+"/java";
        FastAutoGenerator.create(DATA_CONFIG_BUILDER)
                //全局设置
                .globalConfig(builder -> {
                    // 设置作者
                    builder.author(System.getProperty("user.name"))
                            // 覆盖已生成文件
                            .fileOverride()
                            //执行完毕后禁止打开目录
                            .disableOpenDir()
                            // 指定输出目录
                            .outputDir(projectPath);
                })
                //包设置
                .packageConfig(builder -> {
                    // 设置父包名
                    builder.parent("com.test")
                            // 设置父包模块名
//                            .moduleName("system")
                            // 设置mapperXml生成路径
                            .pathInfo(Collections.singletonMap(OutputFile.xml, parentPath+"/resources/mapper"));
                })
                //策略设置
                .strategyConfig(builder -> 
                        //数据库表
                        builder.addInclude("table_a","table_b")
                        //通用查询结果列和通用查询映射结果
                        .mapperBuilder().enableBaseColumnList().enableBaseResultMap()
                        //去掉service接口开头的字母I
                        .serviceBuilder().formatServiceFileName("%sService")
                        //以RESTful风格生成controller
                        .controllerBuilder().enableRestStyle()
                        //数据库字段转实体属性风格--驼峰
                        .entityBuilder().columnNaming(NamingStrategy.underline_to_camel)
                        // 设置过滤表前缀
//                            .addTablePrefix("t_", "c_")
                        //启用lombok注解
                        .enableLombok())
                // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}
 类似资料: