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 等各个模块的代码。

MyBatis-Plus——代码生成器的使用相关推荐

  1. MyBatis Plus Generator——MyBatis Plus代码生成器DEMO

    官方文档 https://mp.baomidou.com/guide/generator.html Maven <dependency><groupId>mysql</g ...

  2. Mybatis Plus————代码生成器

    代码生成器 MyBatis Plus是MyBatis的扩展框架,而代码生成器是MP的核心功能之一,另外还有 "条件构造器"和"通用CRUD"等功能. 步骤演示 ...

  3. Mybatis Plus 代码生成器-让上班划水不再是梦

    文章目录 1. 废话哔哔 2. 开搞 2.1 核心maven依赖 2.2 Spring Boot主要配置 2.3 Mybatis Plus 代码生成器代码 2.4生成的代码结构如下 1. 废话哔哔 不 ...

  4. 视频教程-MyBatis Generator代码生成器视频教程-Java

    MyBatis Generator代码生成器视频教程 Java讲师,多年培训经验,曾参与开发过的项目:某省电信ODS系统.电信自助取数系统.CRM客户关系管理系统.环境应急信息系统.自来水客服系统等. ...

  5. MyBatis Generator 代码生成器

    MyBatis Generator 代码生成器 MyBatis Generator简介 MyBatis Generator(MBG)是MyBatis 的代码生成器.它将为MyBatis的所有版本生成代 ...

  6. mybatisplus代码生成器_想做时间管理大师?你可以试试Mybatis Plus代码生成器

    1. 前言 对于写Crud的老司机来说时间非常宝贵,一些样板代码写不但费时费力,而且枯燥无味.经常有小伙伴问我,胖哥你怎么天天那么有时间去搞新东西,透露一下秘诀呗. 好吧,今天就把Mybatis-pl ...

  7. mybatis maven 代码生成器(mysql)

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  8. Spring boot + mybatis + oracle代码生成器

    在pom文件中加入依赖 <build><plugins><!--逆向工程--><plugin><groupId>org.mybatis.ge ...

  9. mybatis plus 代码生成器

    1.功能 替你生成 controller , service ,dao ,mapper, 基本上不要自己创建文件了 2.依赖 mybatis-plus-generator <!-- https: ...

  10. SpringBoot 系列教程(五十一):SpringBoot整合Mybatis Plus代码生成器,自动生成代码

    MyBatis-Plus 为简化开发而生 快速开始 → 一.简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发. ...

最新文章

  1. 确认了!MySQL 狠甩 Oracle 稳居 Top1!
  2. 深度解析Objective-C笔试题
  3. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测
  4. 一文彻底搞懂前端监控 等推荐
  5. [JLOI2015]战争调度
  6. Wp keyword link 标签自动内链/文章关键词内链 WordPress插件
  7. 李迟2022年1月知识总结
  8. mysql engine类型 小项目_项目中常用的19条MySQL优化
  9. (详细带你分析错误):No property 属性名 found for type 类名,总结了其他解决办法
  10. virt-install命令参数
  11. 射影几何变换的基本原理
  12. VR全景图片,助力VR全景制作,720全景效果图
  13. python计算存款复利计算器_《Python核心编程》第五章:数字
  14. windows C 调用音频输出设备 实现播放
  15. 面向开发者的 Android 8.0 Oreo 详细介绍
  16. Java学习笔记(一):Java简介
  17. JAVA计算机毕业设计漫画网站系统(附源码、数据库)
  18. 关于UWB汽车钥匙介绍
  19. 未来有几种?聊聊气候情景(climate scenarios)的故事
  20. 苹果官方iCloud中的照片如何迁移到Google Photo教程来了

热门文章

  1. SQL优化(一) Merge Join vs. Hash Join vs. Nested Loop
  2. 基于音乐诱发的脑电信号的样本生成
  3. android wait函数使用,Android Sleep/Wait/Delay函数
  4. 小型气象站和工地扬尘监测站的区别
  5. OSPF路由协议原理
  6. 微软Hololens遭遇失败,前途何在?
  7. 一文搞懂 MySQL 中的索引
  8. mysql like 数字_MySQL中like的使用方法
  9. 为什么安装pycharm要配置jdk_JDK安装配置
  10. RIP v2 汇总