MyBatis-Plus代码生成器新3.5.2

  • 1.官网
  • 2.引入依赖
  • 3.创建代码生成器的运行类
  • 4.创建数据库连接
  • 5.全局配置
  • 6.包配置
  • 7.策略配置
  • 8.指定模板引擎
  • 9.完整代码
  • 10.效果图

1.官网

MyBatis-Plus代码生成器新

2.引入依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.2</version>
</dependency>

3.创建代码生成器的运行类

public class NewCodeGenerator {@Testpublic void run() {//配置部分}
}

4.创建数据库连接

FastAutoGenerator.create("jdbc:mysql://localhost:3306/数据库名?serverTimezone=GMT%2B8", "root", "123456")

5.全局配置

  .globalConfig(builder -> {builder.author("perfect imitator") // 设置作者 baomidou 默认值:作者.enableSwagger() // 开启 swagger 模式 默认值:false.fileOverride() // 覆盖已生成文件 默认值:false.disableOpenDir()//禁止打开输出目录 默认值:true.commentDate("yyyy-MM-dd")// 注释日期.dateType(DateType.ONLY_DATE)//定义生成的实体类中日期类型 DateType.ONLY_DATE 默认值: DateType.TIME_PACK.outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录 /opt/baomidou/ 默认值: windows:D:// linux or mac : /tmp//System.getProperty("user.dir")为你当前模块的绝对路径})

6.包配置

  .packageConfig(builder -> {builder.parent("com.atguigu") // 父包模块名 默认值:com.baomidou.controller("controller")//Controller 包名 默认值:controller.entity("entity")//Entity 包名 默认值:entity.service("service")//Service 包名 默认值:service.mapper("mapper")//Mapper 包名 默认值:mapper.moduleName("educms") // 设置父包模块名 默认值:无.pathInfo(Collections.singletonMap(OutputFile.xml,System.getProperty("user.dir")+ "/src/main/resources/mapper")); // 设置mapper.xml存放路径//默认存放在mapper的xml下})

这里将自动生成的xml文件放在了main下的resource目录下,

如果没有进行设置,默认存放在mapperxml目录下

但是存放在这个目录下的xml文件时不能被解析的需要在yml文件中配置

# mybatis-plus设置
mybatis-plus:#配置mapper xml文件的路径mapper-locations: classpath:com/atguigu/educms/mapper/xml/*.xml

7.策略配置

 .strategyConfig(builder -> {builder.addInclude("tb_banner") // 设置需要生成的表名 可边长参数“user”, “user1”.addTablePrefix("tb_", "c_") // 设置过滤表前缀.serviceBuilder()//service策略配置.formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl").entityBuilder()// 实体类策略配置.idType(IdType.ASSIGN_ID)//主键策略  雪花算法自动生成的id  // 自动填充配置  .addTableFills(new Column("gmt_create", FieldFill.INSERT)) //根据数据库字段名适配.addTableFills(new Property("gmtModified", FieldFill.INSERT_UPDATE))//根据生成实体类的属性名适配.enableLombok() //开启lombok.logicDeleteColumnName("deleted")// 说明逻辑删除是哪个字段.enableTableFieldAnnotation()// 属性加上注解说明.controllerBuilder() //controller 策略配置.formatFileName("%sController").enableRestStyle() // 开启RestController注解.mapperBuilder()// mapper策略配置.formatMapperFileName("%sMapper").enableMapperAnnotation()//@mapper注解开启.formatXmlFileName("%sMapper");})

注意这里两个问题

  • 1.设置主键自动生成的策略问题:

    • 如果你的主键类型为Long类型就用 IDType.ASSIGN_ID
    • 如果你的主键类型为String类型就用 IDType.ASSIGN_UUID
  • 2.字段自动填充
    • ColumnProperty的区别
  //如想要生成的表中有gmt_create字段且开启了下划线自动转驼峰 那么就有以下几种配置方法.addTableFills(new Column("gmt_create", FieldFill.INSERT)) //根据数据库字段名适配//因为开启了下划线自动转驼峰所以实体类中对应的属性名为gmtCreate.addTableFills(new Property("gmtCreate", FieldFill.INSERT)) //根据属性名适配

也可以用list集合的方式

// 自定义需要填充的字段 数据库中的字段List<IFill> columnList = new ArrayList<>();columnList.add(new Column("gmt_modified", FieldFill.INSERT_UPDATE));columnList.add(new Column("modifier_id", FieldFill.INSERT_UPDATE));columnList.add(new Column("creator_id", FieldFill.INSERT));columnList.add(new Column("gmt_create", FieldFill.INSERT));columnList.add(new Column("available_flag", FieldFill.INSERT));columnList.add(new Column("deleted_flag", FieldFill.INSERT));columnList.add(new Column("sync_flag", FieldFill.INSERT));
         .addTableFills(tableFillList)

8.指定模板引擎

     .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();

9.完整代码

package codeDemo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.fill.Property;
import org.junit.Test;
import java.util.Collections;
public class NewCodeGenerator {@Testpublic void run() {FastAutoGenerator.create("jdbc:mysql://localhost:3306/数据库名?serverTimezone=GMT%2B8", "root", "123456").globalConfig(builder -> {builder.author("perfect imitator") // 设置作者 baomidou 默认值:作者.enableSwagger() // 开启 swagger 模式 默认值:false.fileOverride() // 覆盖已生成文件 默认值:false.disableOpenDir()//禁止打开输出目录 默认值:true.commentDate("yyyy-MM-dd")// 注释日期.dateType(DateType.ONLY_DATE)//定义生成的实体类中日期类型 DateType.ONLY_DATE 默认值: DateType.TIME_PACK.outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录 /opt/baomidou/ 默认值: windows:D:// linux or mac : /tmp//System.getProperty("user.dir")为你当前模块的绝对路径}).packageConfig(builder -> {builder.parent("com.atguigu") // 父包模块名 默认值:com.baomidou.controller("controller")//Controller 包名 默认值:controller.entity("entity")//Entity 包名 默认值:entity.service("service")//Service 包名 默认值:service.mapper("mapper")//Mapper 包名 默认值:mapper.moduleName("educms") // 设置父包模块名 默认值:无.pathInfo(Collections.singletonMap(OutputFile.xml,System.getProperty("user.dir")+ "/src/main/resources/mapper")); // 设置mapperXml生成路径//默认存放在mapper的xml下}).strategyConfig(builder -> {builder.addInclude("tb_banner") // 设置需要生成的表名 可边长参数“user”, “user1”.addTablePrefix("tb_", "c_") // 设置过滤表前缀.serviceBuilder()//service策略配置.formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl").entityBuilder()// 实体类策略配置.idType(IdType.ASSIGN_ID)//主键策略  雪花算法自动生成的id.addTableFills(new Column("gmt_create", FieldFill.INSERT)) // 自动填充配置  .addTableFills(new Property("gmtModified", FieldFill.INSERT_UPDATE)).enableLombok() //开启lombok.logicDeleteColumnName("deleted")// 说明逻辑删除是哪个字段.enableTableFieldAnnotation()// 属性加上注解说明.controllerBuilder() //controller 策略配置.formatFileName("%sController").enableRestStyle() // 开启RestController注解.mapperBuilder()// mapper策略配置.formatMapperFileName("%sMapper").enableMapperAnnotation()//@mapper注解开启.formatXmlFileName("%sMapper");}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

10.效果图

MyBatis-Plus代码生成器(新)3.5.2的使用相关推荐

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

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

  2. MyBatis Generator 代码生成器

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

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

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

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

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

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

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

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

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

  7. 超实用的 Mybatis 3.5 新特性

    击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:IT牧场 Mybatis 3.5 发布有段时间了,终于支持了 Optional ,这么实用的特性, ...

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

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

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

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

最新文章

  1. C++ demo:文本搜索以及'指针的引用'的思考
  2. htop 比top更好用的top
  3. 集体智慧编程学习笔记——第一讲
  4. 使用LiveNVR实现将RTSP转RTMP、FLV、HLS,实现监控摄像头无插件直播
  5. JAVA 入门(一)
  6. VTK:几何对象之ParametricObjects
  7. Window将Redis设置为开机启动
  8. HTTP清晰的学习笔记
  9. latex在论文中添加行号
  10. java 练习6 交通工具
  11. java数组包含某个值_如何检查Java数组是否包含值?
  12. sprintf参数包含本身时,结果并不符合预期
  13. absolute之后居中宽度自适应
  14. 手把手教你实现echarts3的折线图下钻drilldown功能系列篇二
  15. 程序员打完篮球腰疼是怎么回事,打篮球腰疼怎么办,怎么按摩缓解疼痛!
  16. QTP和翻译软件的故事
  17. 基于Arch的live系统
  18. 使用pip出现报错:Could not find a version that satisfies the...No matching distribution distributio...
  19. dell设置从ssd启动_戴尔笔记本加了固态硬盘后怎么设置从固态硬盘启动
  20. 使用Spark中DataFrame的语法与SQL操作,对人类数据进行处理,比较学历与离婚率的关系

热门文章

  1. IO多路复用之epoll模型
  2. nRF52840/nRF52832 低功耗的测试工程
  3. 寒武纪3款AI处理器齐发,陈天石3年小目标:占领10亿智能AI终端;占领中国AI云端高性能芯片1/3...
  4. 妹子始终没搞懂OAuth2.0,今天整合Spring Cloud Security 一次说明白!
  5. 最新海豚码支付系统APP监控支付码免签系统源码V6.0
  6. win10磁盘占用100% 解决最重要的一个步骤
  7. C语言:求1000以内的完数
  8. 算法笔记(0002) - 【贪心算法】活动安排问题
  9. 学了 C 语言到底能做什么, 能从事什么工作?
  10. 网络规划设计师难考吗?