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

news/2024/12/28 6:52:27/

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 {@Testpublic 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.ppmy.cn/news/47437.html

相关文章

靶机精讲之HackademicRTB1

主机发现 nmap扫描 端口扫描 只有80端口开放 UDP扫描 web渗透 服务扫描 脚本扫描 DOS攻击漏洞 枚举漏洞 查看web端 进行目录爆破 点击 点击后发现地址结构像有目录爆破 接上面枚举漏洞 复制那枚举目录到web 接目录爆破 apeache服务器 查看内容管理系统是否是自建的 在库搜索…

第九篇 Spring数据库事务管理

《Spring》篇章整体栏目 ————————————————————————————— 【第一章】spring 概念与体系结构 【第二章】spring IoC 的工作原理 【第三章】spring IOC与Bean环境搭建与应用 【第四章】spring bean定义 【第五章】Spring 集合注入、作用域 【第六章】…

以人为本的重点是有效网络安全计划的关键

安全和风险管理 (SRM) 领导者在根据九大行业趋势创建和实施网络安全计划时&#xff0c;必须重新考虑他们在技术和以人为本的元素之间的投资平衡。 以人为本的网络安全方法对于减少安全故障至关重要。 在控制设计和实施以及通过业务沟通和网络安全人才管理中关注人&#xff…

learn_C_deep_3 (最名不符实的关键字 - static、static关键字总结、基本数据类型、最冤枉的关键字 - sizeof)

目录 最名不符实的关键字 - static stati修饰全局变量和函数 static修饰局部变量 static关键字总结 几个问题 1.c语言要设置全局变量和函数可以跨文件使用的原因 2.C程序地址空间是什么样的&#xff1f; 3.局部变量为什么具有临时性 4.全局变量为什么具有全局性 5.为…

辉煌优配|军工板块逆市上涨,16只概念股已披露一季度业绩预喜

今日&#xff0c;军工股逆市上涨。 4月21日&#xff0c;A股三大股指低开低走&#xff0c;半导体、AI使用、信创工业、软件等科技属性概念领跌&#xff0c;国防军工、食品饮料和电力设备等板块上涨。 工业互联网中心工业规模超1.2万亿元 据央视新闻报道&#xff0c;本年是《工业…

组态王与FX5U之间如何快速实现无线通讯?

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

Prophet模型中使用外生变量、自定义周期性

Prophet模型中使用外生变量 在使用 Prophet 进行时间序列预测时&#xff0c;我们可能需要考虑一些与时间序列相关但是并不在时间序列中体现的因素&#xff0c;比如天气、特别节日等&#xff0c;这些因素被称为 外生变量&#xff08;external regressors&#xff09;。添加外生变…

案例分享 | 汽车电机控制箱螺钉浮高检测

电机控制器是通过主动工作来控制电机按照设定的方向、速度、角度、响应时间进行运动的集成电路&#xff0c;日常生活中的洗衣机、冰箱、印刷机等设备都需要电机控制器来控制其运行工作&#xff0c;是各种机械设备中不可或缺的部件。 在电动车辆中&#xff0c;电机控制器也是关…