MyBatisPlus3.4.3版自动生成代码的使用

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

1 准备工作

创建springboot工程,这里省略。

2 导入依赖

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starterartifactId>
        dependency>
        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.4.3.4version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.26version>
        dependency>
        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-generatorartifactId>
            <version>3.5.1version>
        dependency>
        
        <dependency>
            <groupId>org.apache.velocitygroupId>
            <artifactId>velocity-engine-coreartifactId>
            <version>2.3version>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-starter-tomcatartifactId>
                exclusion>
            exclusions>
        dependency>
         <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

3 创建CodeGeneratorTest类

需要对

  1. 数据源配置,(自己数据库对应的url,username,password等)
  2. 全局配置, (作者信息,输出目录等)
  3. 包配置, (Entity、Mapper、Mapper XML、Service、Controller 等各个模块的包命名等)
  4. 策略配置, (配置生成那些表,怎么生成等)
  5. 模板配置
  6. 注入配置

注意以下路径需要修改为实制项目路径,要生成的数据库表名需要修改为实制的,数据库源url修改为对应的数据源

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.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import org.junit.Test;

import java.util.Collections;

/**
 * @author: wuKeFan
 * @date: 2022/2/24 10:39
 * @version 1.0
 */
public class CodeGeneratorTest {

    @Test
    public void run() {

        FastAutoGenerator.create(
                        //数据源配置,url需要修改
                        new DataSourceConfig.Builder("url","username","password")
                                .dbQuery(new MySqlQuery())
                                .schema("schema")
                                .typeConvert(new MySqlTypeConvert())
                                .keyWordsHandler(new MySqlKeyWordsHandler())
                )

                //全局配置
                .globalConfig(builder -> {
                    builder.author("wuKeFan") // 设置作者
                            //.disableOpenDir()//禁止打开输出目录
                            //.enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(System.getProperty("user.dir")+"/src/main/java"); // 指定输出目录
                })

                //包配置
                .packageConfig(builder -> {
                    builder.parent("com.wkf.workrecord.tools.autocode") // 设置父包名,根据实制项目路径修改
                            .moduleName("web")      // 父包名路径下再新建的文件夹
                            .entity("entity")         // 后面这些是sys文件夹里新建的各分类文件夹
                            .service("service")
                            .serviceImpl("service.impl")
                            .mapper("mapper")
                            .xml("mapper.xml")
                            .controller("controller")
                            //.other("other")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/java/com/wkf/workrecord/tools/autocode/web/mapper/xml")); // 存放mapper.xml路径
                })

                //策略配置
                .strategyConfig(builder -> {
                    builder.addInclude("jm_fxy_apply_staging_plan_code") // 设置需要生成的表名
                            .addTablePrefix("jm_") // 设置过滤表前缀
                            .entityBuilder() //实体类配置
                            .enableLombok() //使用lombok
                            .enableTableFieldAnnotation()//实体类字段注解
                            .controllerBuilder()//controller配置
                            .enableRestStyle()//开启restcontroller
                            .mapperBuilder()
                            .enableMapperAnnotation()//开启mapper注解
                            .enableBaseResultMap()//启用 BaseResultMap 生成
                            .enableBaseColumnList();//启用 BaseColumnList
                })
        //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
        .execute();
    }
}

4 运行代码生成器

点击运行上面的main方法就能自动生成了

生成的效果图:

MyBatisPlus3.4.3版自动生成代码的使用_第1张图片

这样代码生成器就写好了,如果需要其他格式模板可以自行参考下面的配置,自行修改

5 数据库配置(DataSourceConfig)

5.1 基础配置

MyBatisPlus3.4.3版自动生成代码的使用_第2张图片

5.2 可选配置

MyBatisPlus3.4.3版自动生成代码的使用_第3张图片

5.3 全局配置(GlobalConfig)

在这里插入图片描述

MyBatisPlus3.4.3版自动生成代码的使用_第4张图片

5.4 包配置(PackageConfig)

MyBatisPlus3.4.3版自动生成代码的使用_第5张图片

5.5 模板配置(TemplateConfig)

MyBatisPlus3.4.3版自动生成代码的使用_第6张图片

5.6 注入配置(InjectionConfig)

MyBatisPlus3.4.3版自动生成代码的使用_第7张图片

5.7 策略配置(StrategyConfig)

MyBatisPlus3.4.3版自动生成代码的使用_第8张图片

5.8 Entity 策略配置

MyBatisPlus3.4.3版自动生成代码的使用_第9张图片

5.9 Controller 策略配置

MyBatisPlus3.4.3版自动生成代码的使用_第10张图片

5.10 Service 策略配置

MyBatisPlus3.4.3版自动生成代码的使用_第11张图片

5.11 Mapper 策略配置

MyBatisPlus3.4.3版自动生成代码的使用_第12张图片

你可能感兴趣的:(Java,mybatis,mybatis,java,spring,mybatis-plus,后端)