一,mybatis-plus代码生成器

在项目开发中,在新建一个项目时,要写大量的controller和service等等,不免觉得繁琐,因此可以使用mybatis-plus的一套逆向生成工具,解决大部分代码开发的问题。

二,依赖

这里依旧使用springboot项目,因此需要在pom文件中加入依赖如下,copy就完事了,如果又版本问题,直接改下版本就好了

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency><!-- mysql驱动包 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version>
</dependency><!-- myBatis -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.4.0</version>
</dependency>
<!-- Junit单元测试 -->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>
</dependency><!--Log4J日志工具  打印日志-->
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.14</version>
</dependency><!-- mybatis generertor-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.0</version>
</dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version>
</dependency><!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.30</version>
</dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version>
</dependency><!-- test -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

三,代码实现

随便写个测试类,运行以下代码即可。需要修改代码输出的目录,重新生成时文件是否覆盖设置成false可以在修改表名字之后一直运行而不会覆盖,逐渐策略可以改成雪花算法或者uuid,数据源的账号密码需要修改,连接的哪个数据库也需要修改,模块名那些需要修改,策略配置里面的数据库名需要修改,

/*** @author zhenghuisheng* @date 2021/02/15 17:25:36*/
@Test
public static void main(String[] args) {// 1、创建代码生成器AutoGenerator mpg = new AutoGenerator();// 2、全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");System.out.println(projectPath);//代码最终输出的目录,尽量写绝对路径gc.setOutputDir("E:\auth\appsmith\src\main\java" + "/src/main/java");//设置作者gc.setAuthor("zhenghuisheng");gc.setOpen(false); //生成后是否打开资源管理器gc.setFileOverride(false); //重新生成时文件是否覆盖/** mp生成service层代码,默认接口名称第一个字母有 I* UcenterService* */gc.setServiceName("%sService"); //去掉Service接口的首字母Igc.setIdType(IdType.ID_WORKER_STR); //主键策略gc.setDateType(DateType.ONLY_DATE); //定义生成的实体类中日期类型gc.setSwagger2(true); //开启Swagger2模式mpg.setGlobalConfig(gc);// 3、数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("XXXxxxxxxxx");dsc.setDbType(DbType.MYSQL);mpg.setDataSource(dsc);// 4、包配置PackageConfig pc = new PackageConfig();pc.setModuleName("study"); //模块名pc.setParent("com.zheng");pc.setController("controller");pc.setEntity("entity");pc.setService("service");pc.setMapper("mapper");mpg.setPackageInfo(pc);// 5、策略配置StrategyConfig strategy = new StrategyConfig();//表名称对应的实体类strategy.setInclude("user");strategy.setNaming(NamingStrategy.underline_to_camel); //数据库表映射到实体的命名策略strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀strategy.setColumnNaming(NamingStrategy.underline_to_camel); //数据库表字段映射到实体的命名策略strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作strategy.setRestControllerStyle(true); //restful api风格控制器strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符mpg.setStrategy(strategy);// 6、执行mpg.execute();
}

四,效果如下

首先先建立表,如下本地两张表,分别是用户表和角色表

没运行代码之前,效果是这样子

运行代码之后,有关user类的controller,service等全部出来了

运行完这个user之后,将这个5里面的配置策略改成role角色表,如下,有关角色表相关的信息也全部出来了

// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
//表名称对应的实体类
strategy.setInclude("role");

那么逆向工具的使用就大功告成了!

mybatis-plus代码生成器生成相关推荐

  1. 【高校宿舍管理系统】第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码

    第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正 ...

  2. 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型

    问题描述: 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型,IDEA提示报错"Usa ...

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

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

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

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

  5. mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyBatis 可以使用简单的 XM ...

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

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

  7. Mybatis Plus自动生成代码

    mybatis-plus自动生成代码 一.简易生成代码 二.指定生成的样式,并且不在一个模块 1.父pom文件配置 2.子模块pom文件配置 3.准备vm文件 4.设置MyBatisPlusGener ...

  8. Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2)

    Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2) 引言: 在使用mybatis开发的过程中,通常我们会给数据库的每张表编写对应的po.mapper.mapp ...

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

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

  10. MyBatis Generator 代码生成器

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

最新文章

  1. Silverlight、JavaFX、Flex技术比较
  2. java reflection list_Java Reflection(九):泛型
  3. 我使用过的Linux命令之trap - 在脚本中处理信号
  4. python手机版打了代码运行不了-如何用iPad运行Python代码?
  5. table 多行 宽度不一致_“table”除了桌子,你还知道一些别的意思吗?
  6. AUTOSAR专业知识篇(五)-“敏捷”适用于汽车软件开发吗?当我们谈“敏捷”,到底在谈什么?
  7. 剑指offer(C++)-JZ24:反转链表(数据结构-链表)
  8. Pytorch基础(二) 初始自动微分
  9. 安装双系统window +ubuntu
  10. kali linux捉肉鸡教程,使用Kali中的Metasploit生成木马控制Windows系统
  11. 移动办公正在让电子邮件系统变得更有趣
  12. 面试 SQL整理 必考的SQL面试题:经典20题
  13. Java +Vue 实现滑动拼图验证码(Java篇 )
  14. Revealing ecosystem services relationships and their driving factors for five basins of Beijing(1)
  15. 苹果gamecenter未能连接服务器,win7系统GameCenter无法连接服务器的解决方法
  16. 机器学习实战案例—验证码(CAPTCHA)识别基于Logistic
  17. LA 7456 Least Crucial Node
  18. android build.prop的参数
  19. 独家对话AAAI、ACM、ACL三会会士Raymond J. Mooney | 香侬专栏
  20. MIME类型,Content-Type

热门文章

  1. 版本控制系统的集中式和分布式
  2. STL详解(十二)—— unordered_set、unordered_map的介绍及使用
  3. 马云宣布传承计划,回归教育
  4. Markdown如何空格和空行
  5. video标签的mp4格式的视频不能在iphone上播放问题
  6. import win32api出错
  7. Ubuntu 修改默认 Python版本
  8. Java程序设计教程(第三版) 雍俊海 7.3 答案/代码
  9. 中国喷涂行业规划趋势与产销需求报告2021年版
  10. SQL唯一键unique