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

 更新时间:2023年04月21日 10:41:36   作者:吳名氏  
这篇文章主要介绍了MyBatisPlus3.4.3版自动生成代码的使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

1 准备工作

创建springboot工程,这里省略。

2 导入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- mybatisplus依赖,注意不用引入mybatis依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.4</version>
        </dependency>
        <!-- mysql依赖可换成对应版本 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!-- mybatis-plus代码生成器依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- 自动生成代码的模板引擎,mybatis-plus默认的-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
        <!-- 由于生成的controller会用到web的注解-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

3 创建CodeGeneratorTest类

需要对

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

注意以下路径需要修改为实制项目路径,要生成的数据库表名需要修改为实制的,数据库源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方法就能自动生成了

生成的效果图:

在这里插入图片描述

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

5 数据库配置(DataSourceConfig)

5.1 基础配置

在这里插入图片描述

5.2 可选配置

在这里插入图片描述

5.3 全局配置(GlobalConfig)

在这里插入图片描述

5.4 包配置(PackageConfig)

在这里插入图片描述

5.5 模板配置(TemplateConfig)

在这里插入图片描述

5.6 注入配置(InjectionConfig)

在这里插入图片描述

5.7 策略配置(StrategyConfig)

在这里插入图片描述

5.8 Entity 策略配置

在这里插入图片描述

5.9 Controller 策略配置

在这里插入图片描述

5.10 Service 策略配置

在这里插入图片描述

5.11 Mapper 策略配置

在这里插入图片描述

到此这篇关于MyBatisPlus3.4.3版自动生成代码的使用的文章就介绍到这了,更多相关MyBatisPlus自动生成代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解spring cloud eureka注册中心

    详解spring cloud eureka注册中心

    这篇文章主要介绍了详解spring cloud eureka注册中心,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Java继承子类的构造函数方式

    Java继承子类的构造函数方式

    这篇文章主要介绍了Java继承子类的构造函数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 运行时常量池和字符串常量池的区别及说明

    运行时常量池和字符串常量池的区别及说明

    这篇文章主要介绍了运行时常量池和字符串常量池的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 在Java内存模型中测试并发程序代码

    在Java内存模型中测试并发程序代码

    这篇文章主要介绍了在Java内存模型中测试并发程序代码,辅以文中所提到的JavaScript库JCStress进行,需要的朋友可以参考下
    2015-07-07
  • JVM入门之类加载与字节码技术(类加载与类的加载器)

    JVM入门之类加载与字节码技术(类加载与类的加载器)

    Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等
    2021-06-06
  • java封装实例用法讲解

    java封装实例用法讲解

    在本篇文章里小编给大家整理了一篇关于java封装实例用法及相关知识点,有兴趣的朋友们可以参考下。
    2021-01-01
  • Java Socket实现多人聊天系统

    Java Socket实现多人聊天系统

    这篇文章主要为大家详细介绍了Java Socket实现多人聊天系统,具有图形界面,实现文件传输功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 利用Java实现轻松解析DNS报文

    利用Java实现轻松解析DNS报文

    这篇文章主要为大家详细介绍了如何利用Java实现轻松解析DNS报文,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-11-11
  • Java线程池队列LinkedBlockingDeque

    Java线程池队列LinkedBlockingDeque

    这篇文章主要为大家介绍了Java线程池队列LinkedBlockingDeque示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 关于Filter中获取请求体body后再次读取的问题

    关于Filter中获取请求体body后再次读取的问题

    这篇文章主要介绍了关于Filter中获取请求体body后再次读取的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论