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

news2024/11/28 2:33:28

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类

需要对

  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方法就能自动生成了

生成的效果图:

在这里插入图片描述

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

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 策略配置

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ae:灯光图层

灯光 Light是合成中可用于照亮其他 3D 图层并能产生投影、反射的一种元素&#xff0c;类似于光源。如果没有建立灯光图层&#xff0c;系统会使用默认的“环境光”来照亮场景。当建立了灯光图层之后&#xff0c;以所建立的灯光来照明。一般可根据实际需要创建一个或多个相同或不…

2023测试工程师全新技术栈,吃透这些,起薪就15k

相信每个准备软件测试面试的同学&#xff0c;不管你是大学刚毕业&#xff0c;满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业&#xff0c;都会面临着众多的疑问和不解&#xff0c;那就是该怎么走出着第一步&#xff0c;今天本文一次性告诉你&a…

第三章 运算符

文章目录1. 什么是运算符2 算术运算符2.1 基本四则运算符 、-、*、/、%2.2 增量赋值运算符 、- 、* 、/ 、%2.3 自增/自减运算符 、--3. 关系运算符4. 逻辑运算符5. 位运算符6. 移位运算7. 条件运算符8. 运算符的优先级1. 什么是运算符 计算机的最基本的用途之一就是执行数学运…

蓝桥杯web组备赛

文章目录前言js的数据结构和算法find方法箭头函数注意事项vue2的问题学会用检查来快速查看代码结构css Transform原生dom操作有些遗忘当看不懂js逻辑的时候console.log打印看一下jquery的使用vue2也忘了&#xff0c;一个月没写就忘成狗class 和 style的动态绑定axios获取数据购…

FFMpeg的整体结构

fdk-aac voaac_enc x264这些属于扩展。需要另外编译。 FFMPEG有8个常用库&#xff1a; AVUtil: 核心工具库&#xff0c;下面的许多其他模块都会依赖该库做一些基本的音视频处理操作。 AVFormat&#xff1a;文件格式和协议库&#xff0c;该模块是最重要的模块之一&#xf…

Cheaptrick算法

Cheaptrick&#xff0c;a spectral envelope estimator for high-qualityspeech synthesis 转载请注明出处&#xff01; 2015年Morise发表在SPEECH COMMUNICATION期刊上的一篇文章。 该算法目的是获得一个准确的、时间稳定的谱包络&#xff0c;采用基频(F0)&#xff0c;由F0…

【效率神器】idea使用技巧

IntelliJ IDEA&#xff08;以下简称IDEA&#xff09;的主题、字体、背景色等都是可以根据自己的喜好进行设置的&#xff0c;本小节就教大家一些常用的IDEA设置。 1. IDEA 中设置主题、字体 1.1 设置主题 点击菜单栏上的【File】–>【Settings…】–>【Appearance】–&…

Spark SQL 数据的加载和保存

目录 通用的加载和保存方式 1.1 加载数据 1.2保存数据 1.3 Parquet 1. 加载数据 2.保存数据 1.4 JSON 1.导入隐式转换 2.加载 JSON 文件 3.创建临时表 4.数据查询 1.5 CSV 通用的加载和保存方式 SparkSQL 提供了通用的保存数据和数据加载的方式。这里的通用指的是使用…

JS的防抖与节流

在进行窗口的resize、scroll&#xff0c;输入框内容校验等操作时&#xff0c;如果事件处理函数调用的频率无限制&#xff0c;会加重浏览器的负担&#xff0c;导致用户体验非常糟糕。此时我们可以采用debounce&#xff08;防抖&#xff09;和throttle&#xff08;节流&#xff0…

PP-KANBAN-看板概述

PP-KANBAN-看板概述看板概述-OverviewPUSH-PULL 原则看板的补充策略看板的系统配置看板概述-Overview 看板是1953年由Mr. Taiichi Ohno在丰田汽车公司发明的。当时&#xff0c;整个汽车行业正在通过实施丰田的“丰田生产系统”来提升管理。这个系统基于基于物料的卡片实现物资…

《2023游戏行业热点趋势报告》|Party Game游戏成为新趋势,备受消费者瞩目

过去的2022年&#xff0c;在各路重拳下&#xff0c;我们目睹了游戏行业的“焦虑”&#xff1a; 版号停发&#xff0c;版号数量缩减&#xff1b; 整个行业8年内首次下滑&#xff0c;玩家数量减少&#xff1b; 市场空间被挤压&#xff0c;买量成本激增&#xff1b; ...... 游…

【安全防御】防火墙

目录 1.什么是防火墙&#xff1f; 2.状态防火墙的工作原理&#xff1f; 3.防火墙实验 1.什么是防火墙&#xff1f; 防火墙&#xff08;英语&#xff1a;Firewall&#xff09;&#xff0c;也称防护墙&#xff0c;是由Check Point 创立者Gil Shwed于1993 年发明并引入国际互联…

“AIGC+影像”成势,美图出头?

配图来自Canva可画 众所周知&#xff0c;美图公司是业界出了名的多边形玩家&#xff0c;从牙科、区块链、盲盒到炒币等等&#xff0c;美图似乎总出现在意想不到的地方&#xff0c;而正因此它也被盖上了“不务正业”的标签。 所幸的是&#xff0c;经由去年AIGC爆火&#xff0c;…

【1026. 节点与其祖先之间的最大差值】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给定二叉树的根节点 root&#xff0c;找出存在于 不同 节点 A 和 B 之间的最大值 V&#xff0c;其中 V |A.val - B.val|&#xff0c;且 A 是 B 的祖先。 &#xff08;如果 A 的任何子节点之一为 B&…

大小端字节序存储

每个数据类型在内存中都会被分配若干个字节&#xff0c;而这些字节在内存中的存储顺序就是字节序。在计算机底层存储中&#xff0c;有两种常见的字节序&#xff1a;大端字节序和小端字节序。 大端字节序&#xff1a;高位字节在前&#xff0c;低位字节在后&#xff1b;小端字节…

藏经阁(七)有源蜂鸣器和无源蜂鸣器 解析

文章目录特征区别场景选型实战应用特征 有源蜂鸣器特征&#xff1a; 又被称为直流蜂鸣器包含了一个多谐振荡器只要额定直流电压可以在两端发出声音具有驱动控制简单价格略高 无源蜂鸣器特征&#xff1a; 又被称为交流蜂鸣器内部没有振荡器需要在两端施加特定频率的方波电压…

如何借助无线通讯终端实现组态王与PLC之间通信?

本方案是基于Modbus RTU协议下实现的1主多从自组网无线通信形式&#xff0c;主站为组态王&#xff0c;从站为两台三菱FX5U PLC。在工厂里&#xff0c;组态王和plc所处位置距离较为分散&#xff0c;重新铺设电缆线工期长&#xff0c;成本高&#xff0c;故采用日系PLC专用无线通讯…

LDMUI-001 61320946C模拟量模件的40端即直流24伏的负端接至逻辑地汇流排上

LDMUI-001 61320946C模拟量模件的40端即直流24伏的负端接至逻辑地汇流排上 ​ 八、现场接地常用注意事项 1.现场控制站 接地螺丝因机柜本体与底座间有胶皮形成绝缘&#xff0c;屏蔽地汇流排与底座间绝缘&#xff0c;现场控制站必须按规定做好接地处理。即分别接至现场控制站接…

tmall.item.sizemapping.template.update( 更新天猫商品尺码表模板 )

&#xffe5;开放平台免费API必须用户授权 更新天猫商品尺码表模板 公共参数 请求地址: 公共请求参数: 公共响应参数: ![在这里插入图片描述](https://img-blog.csdnimg.cn/d28890c8804c4a50bdd0877f0d2a9659.png请求参数 响应参数 点击获取key和secret 请求示例 响应示例 异…

PHP的垃圾回收机制(全网详解)

概念&#xff1a; PHP的垃圾回收机制是自动的&#xff0c;它通过内置的垃圾回收器(Garbage Collector)来实现。当一个PHP对象不再被引用时&#xff0c;它就成为垃圾。垃圾回收器会定期扫描内存中的所有对象&#xff0c;将没有引用的对象标记为垃圾&#xff0c;并释放它们占用的…