MyBatis-Plus——代码生成器的使用

article/2025/9/29 5:24:00

MyBatis-Plus——代码生成器的使用

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

导入依赖

        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.19</version></dependency>

更详细的代码生成器配置请查看官方文档:https://baomidou.com/pages/061573/#superentityclass

表结构

在这里插入图片描述

当前项目结构

在这里插入图片描述

配置代码生成器

1、globalConfig 全局策略配置

outputDir

  • 生成文件的输出目录
  • 默认值:D 盘根目录

fileOverride

  • 是否覆盖已有文件
  • 默认值:false

open

  • 是否打开输出目录
  • 默认值:true

enableCache

  • 是否在 xml 中添加二级缓存配置
  • 默认值:false

开发人员

  • 默认值:null

kotlin

  • 开启 Kotlin 模式
  • 默认值:false

swagger2

  • 开启 swagger2 模式
  • 默认值:false

activeRecord

  • 开启 ActiveRecord 模式
  • 默认值:false

baseResultMap

  • 开启 BaseResultMap
  • 默认值:false

baseColumnList

  • 开启 baseColumnList
  • 默认值:false

dateType

  • 时间类型对应策略
  • 默认值:TIME_PACK

entityName

  • 实体命名方式
  • 默认值:null 例如:%sEntity 生成 UserEntity

mapperName

  • mapper 命名方式
  • 默认值:null 例如:%sDao 生成 UserDao

xmlName

  • Mapper xml 命名方式
  • 默认值:null 例如:%sDao 生成 UserDao.xml

serviceName

  • service 命名方式
  • 默认值:null 例如:%sBusiness 生成 UserBusiness

serviceImplName

  • service impl 命名方式
  • 默认值:null 例如:%sBusinessImpl 生成 UserBusinessImpl

controllerName

  • controller 命名方式
  • 默认值:null 例如:%sAction 生成 UserAction

idType

  • 指定生成的主键的 ID 类型
  • 默认值:null

2、dataSourceConfig 数据源配置

dbQuery

  • 数据库信息查询类
  • 默认由 dbType 类型决定选择对应数据库内置实现

​ 实现 IDbQuery 接口自定义数据库查询 SQL 语句 定制化返回自己需要的内容

dbType

  • 数据库类型
  • 该类内置了常用的数据库类型【必须】

schemaName

  • 数据库 schema name
  • 例如 PostgreSQL 可指定为 public

typeConvert

  • 类型转换
  • 默认由 dbType 类型决定选择对应数据库内置实现

​ 实现 ITypeConvert 接口自定义数据库 字段类型 转换为自己需要的 java 类型,内置转换类型无法满足可实现 IColumnType 接口自定义

url

  • 驱动连接的 URL

driverName

  • 驱动名称

username

  • 数据库连接用户名

password

  • 数据库连接密码
package com.haoming;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import java.util.ArrayList;public class ChengCode {public static void main(String[] args) {//构建代码生成器对象AutoGenerator mpg = new AutoGenerator();//1、全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/src/main/java");//生成文件的输出目录gc.setAuthor("鼠皓明");//作者gc.setOpen(false);//是否打开输出目录gc.setFileOverride(false);//是否覆盖已有的文件gc.setServiceName("%sService");//去除Service的I前缀gc.setIdType(IdType.ID_WORKER);//主键生成策略//ONLY_DATE 只使用 java.util.date 代替,SQL_PACK 使用 java.sql 包下的,TIME_PACK 使用 java.time 包下的 java8 新的时间类型gc.setDateType(DateType.TIME_PACK);//数据库时间类型 到 实体类时间类型 对应策略gc.setSwagger2(true);//开启swagger2模式mpg.setGlobalConfig(gc);//2、数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSl=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("123456");dsc.setDbType(DbType.MYSQL);//数据库类型mpg.setDataSource(dsc);//3、包的配置PackageConfig pc = new PackageConfig();pc.setModuleName("blog");//父包模块名pc.setParent("com.cheng");//父包名,如果为空,将下面子包名必须写全部, 否则就只需写子包名pc.setEntity("pojo");pc.setMapper("mapper");pc.setService("service");pc.setController("controller");mpg.setPackageInfo(pc);//4、策略配置StrategyConfig sy = new StrategyConfig();sy.setInclude("user");//设置要映射的表,可以设置多张sy.setNaming(NamingStrategy.underline_to_camel);//从数据库表到文件的命名策略,下划线转驼峰命名sy.setColumnNaming(NamingStrategy.underline_to_camel);//列的命名策略sy.setEntityLombokModel(true);//开启lombok支持sy.setLogicDeleteFieldName("deleted");//设置逻辑删除字段sy.setVersionFieldName("version");//设置乐观锁sy.setRestControllerStyle(true);//开启controller的restful命名sy.setControllerMappingHyphenStyle(true);//开启controller中请求映射的连字符样式,如:localhost:8080/hello_id_1//设置自动填充TableFill create_time = new TableFill("create_time", FieldFill.INSERT);TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);ArrayList<TableFill> tableFills = new ArrayList<>();tableFills.add(create_time);tableFills.add(update_time);mpg.setStrategy(sy);//执行代码生成器mpg.execute();}
}

执行代码生成器,查看项目结构的变化

在这里插入图片描述

代码生成器执行成功,自动生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码。


http://chatgpt.dhexx.cn/article/VyV0JS7a.shtml

相关文章

推荐几个代码自动生成器,神器

20个代码生成框架 老的代码生成器的地址&#xff1a;https://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html 以下是大家推荐的最近很火爆的代码生成器神器。如果有更好的希望大家多多留言&#xff0c;我会及时补充上去。 2.0 WebFirst .NET Core代码生成器 全新的.…

Mybatis-Plus自动生成代码,自定义Controller

MP网址&#xff1a;https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8 直接copy官网代码修改成自己的&#xff1a; private void generate() {FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?serverTimezoneGMT%2b8", "root", "…

Oracle数据库的下载与安装教程详解

前言 由于新公司的开发需要用到Oracle数据库&#xff0c;但是自己之前很少接触Oracle&#xff0c;自然也就没有安装Oracle数据库&#xff0c;所以在自己亲自下载安装的时候&#xff0c;就顺便整理成一篇笔记。 一、Oracle的下载 首先&#xff0c;任何软件的下载都推荐自己去官…

【详细】Oracle数据库安装教程--Oracle DataBase 19c

目录 前言/背景1、下载Oracle 19c数据库1. Oracle官网下载2. 网盘下载3. 安装及使用 2、Oracle管理工具 前言/背景 Oracle Database 19c 是最新的长期版本&#xff0c;支持期限最长&#xff1b; 19.3 - 企业版&#xff08;也包括标准版 2&#xff09; 适用于WINDOWS X64位系统。…

Oracle数据库的学习

初始第一步&#xff1a;打开计算机管理---找到服务---打开Oracle实例和Oracle监听器。 1.在命令提示窗口中输入sqlplus&#xff0c;然后进入数据库设置页面大小&#xff1a; 2.切换用户&#xff1a; 3. run相当于/ &#xff0c;D:\999.sql 这是运行脚本的指令&#xff1b; 4. …

Oracle 高级教程

目录 一、Oracle体系结构的概览... 2 二、Oracle高级查询... 10 三、Oracle触发器... 18 四、Oracle存储过程... 26 五、Oracle事务... 30 六、Oracle锁... 37 七、Oracle包... 40 八、Oracle游标... 42 九、Oracle函数... 47 十、Oracle备份与恢复... 129 十一、Or…

Oracle(11g)数据库安装详细图解教程

目录 一、下载 Oracle 11g R2 安装包(for windows) 二、详细图解安装过程 三、服务器检查 一、下载 Oracle 11g R2 安装包(for windows) 官网下载 百度云盘(提取码&#xff1a;u3xw) 下载后的安装包文件如下图所示&#xff1a; 同时选中两个压缩包进行解压&#xff0c;解…

Oracle入门

Oracle入门 数据库服务器、数据库和表的关系 所谓安装数据库服务器&#xff0c;只是在机器上装了一个数据库管理程序&#xff0c;这个管理程序可以管理多个数据库&#xff0c;一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据&#xff0c;一般会在数据库…

oracle数据库的使用

文章目录 1.Oracle 的表空间分类1.1永久表空间1.2临时表空间1.3创建永久表空间命令 2 、创建用户2.1 通过 PL/SQL Developer 工具创建用户 3 分配用户权限3.1对象权限(Object privileges)3.2角色权限(Role privileges)3.3系统权限(System privileges) 4 分配链接权限5 分配系统…

oracle入门学习

一、oracle课程介绍 Oracle是当今世界最强大的数据库软件。 二、oracle安装 准备安装程序 Oracle 10g setup.exe 1、oracle的启动 三种方式&#xff1a; 1、计算机管理工具——服务——打开oracle相关服务配置。 2、将一下脚本程序更改为.bat文件 Sc start”OracleOraDb…

菜鸟教程网oracle,Oracle数据库入门教程 Oracle数据库菜鸟教程

Oracle数据库&#xff0c;可以说是数据库界的老大了。只要你是对数据库感兴趣&#xff0c;或者说是想要从事数据库方面的工作的话&#xff0c;你都需要去了解接触一下oracle数据库的一些知识。但是对于很多刚刚开始学习oracle数据库的朋友来说&#xff0c;想要入门还是需要有一…

Oracle数据库安装教程--Oracle19c DataBase

#注意声明&#xff1a;本文继续留给有需要的Oracle开发学习者使用&#xff0c;作者将不再继续解答Oracle相关的问题。 首先&#xff0c;下载Oracle安装包的压缩文件 访问Oracle官网&#xff08;https://www.oracle.com/index.html&#xff09;下的数据库下载地址&#xff1a; …

Oracle数据库教程(一)

目录&#xff1a;导读 一、简介二、数据类型常用数据类型 三、数据定义建表约束 四、数据操纵增加数据删除数据修改数据查询语句数据提交/回退 五、SQL操作符算术操作符比较操作符逻辑操作符连接操作符操作符优先级 一、简介 Oracle 数据库是 Oracle&#xff08;中文名称叫甲骨…

Oracle数据库安装教程

一、安装前准备 1.在官网下载oracle数据库的安装包。&#xff08;官方下载地址为&#xff1a;https://www.oracle.com/database/technologies/oracle-database-software-downloads.html&#xff09; 2.需要注意的是下载安装包时File1和File2都需要下载。下载会出现登录界面&am…

Oracle数据库基础入门

Oracle数据库基础入门 一&#xff0c;了解Oracle数据库 1.1 什么是数据库 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 1.2 常见的数据库 Oracle&#xff0c;MySQL&#xff0c;DB2&#xff0c;SQLserver等 1.3 DBMS数据库管理系统 数据库管理系统(Data…

oracle数据库菜鸟入门

所有应用软件之中&#xff0c;数据库可能是最复杂的。 MySQL的手册有3000多页&#xff0c;PostgreSQL的手册有2000多页&#xff0c;Oracle的手册更是比它们相加还要厚。 但是&#xff0c;自己写一个最简单的数据库&#xff0c;做起来并不难。Reddit上面有一个帖子&#xff0c;…

Oracle 学习(一)入门

一、学习目标 Oracle介绍Oracle安装Oracle体系结构Oracle与PL/SQL是什么关系DML、DQL、DCL、DDL基本查询条件查询单行函数多行函数 二、Oracle介绍 Oracle &#xff1a;关系型的数据库 &#xff0c; 端口号&#xff1a;1521 &#xff0c;收费&#xff08;学习是免费的&#…

oracle入门教程

推荐一个Oracle入门学习教程 点击下面链接进入自学网站 学习网站:http://www.51zxw.net/study.asp?vip16229363 点击图片箭头所指按钮——请点击进入学习 在下面方框里面搜索Oracle 第一个搜索结果就是小姐姐Oracle视频讲解课程 入门教程部分 永久表空间 存储数据库中需要永…

Oracle数据库 - 安装教程

前言&#xff1a;初次使用Orcale&#xff0c;安装并使用自己感觉好痛苦&#xff0c;不断试错&#xff0c;经验分享&#xff0c;少走弯路 一天阅读上百个网页是小事 下载 官网&#xff1a;项目客户要求Oracle Database 19c Enterprise Edition 19.3.0.0.0 &#xff08;自己用建…