mybatis-plus代码生成器生成

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mybatis-plus代码生成器生成

一,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接口的首字母I
  gc.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");

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
47 2
|
5月前
|
API
mybatis-plus代码生成器(二)
mybatis-plus代码生成器(二)
39 0
|
6月前
|
关系型数据库 MySQL
mybatis-plus代码生成器
mybatis-plus代码生成器
36 0
|
7月前
|
SQL 关系型数据库 MySQL
mybatis-plus代码生成器(+24篇MySql/MyBatis-Plus文章)
mybatis-plus代码生成器(+24篇MySql/MyBatis-Plus文章)
58 0
|
9月前
|
Java
MybatisPlus代码生成器:快速生成高质量代码
MybatisPlus代码生成器:快速生成高质量代码
50 0
|
11月前
|
Java 数据库
MyBatisPlus里面的代码生成器 ---牛啊
MyBatisPlus里面的代码生成器 ---牛啊
|
12月前
|
SQL JavaScript 数据可视化
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
|
12月前
|
SQL Oracle 数据可视化
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
|
12月前
|
XML SQL 缓存
MyBatis-19MyBatis代码生成器-XML配置详解
MyBatis-19MyBatis代码生成器-XML配置详解
205 0
http://www.vxiaotou.com