mybatis-plus代码生成器生成

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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");

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
1月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
2月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
4月前
Mybatis-Plus 代码生成器
Mybatis-Plus 代码生成器
|
6月前
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
81 2
|
6月前
|
JavaScript 关系型数据库 Java
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
419 0
|
6月前
|
XML Java 数据库连接
MyBatis代码生成器
MyBatis代码生成器
114 0
|
6月前
|
SQL 资源调度 Java
mybatis-plus代码生成器的UI界面使用非常方便
mybatis-plus代码生成器的UI界面使用非常方便
120 0
|
6月前
如何使用MybatisPlus的代码生成器功能?
如何使用MybatisPlus的代码生成器功能?
|
6月前
|
数据库连接
一款非常好用的MyBatisPlus代码生成工具
一款非常好用的MyBatisPlus代码生成工具
36 0