利用mybatis-plus怎么实现一个代码自动生成功能-创新互联-成都快上网建站

利用mybatis-plus怎么实现一个代码自动生成功能-创新互联

本篇文章为大家展示了利用mybatis-plus怎么实现一个代码自动生成功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联建站专注于武冈企业网站建设,响应式网站设计,商城开发。武冈网站建设公司,为武冈等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

使用 mybatis-plus 工具自动给我们生成 Controller、Service、Entity、Mapper、Mapper.xml 层代码

要求:

① 生成的Controller类,需要继承 BaseController

② 生成的Entity 类,需要继承 BaseEntity

③ 生成的 Service,默认名称下是以 I 开头的接口, 在生成Service层代码中需要把这个 I 去掉

二、实现步骤

① 在数据库中创建好 数据库 与 要生成代码对应的表

这里拿 user 表举例

DROP TABLE IF EXISTS user;
 
CREATE TABLE user
(
 id BIGINT(20) NOT NULL COMMENT '主键ID',
 name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
 age INT(11) NULL DEFAULT NULL COMMENT '年龄',
 email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
 PRIMARY KEY (id)
);
 
DELETE FROM user;
 
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

② 创建 一个SpringBoot 项目,其中 pom.xml 内容如下:



  4.0.0
  
    org.springframework.boot
    spring-boot-starter-parent
    2.1.11.RELEASE
     
  
  com.lcy
  mybatis-plus-demo
  0.0.1-SNAPSHOT
  mybatis-plus-demo
  Demo project for Spring Boot
 
  
    1.8
  
 
  
    
      org.springframework.boot
      spring-boot-starter-web
    
 
    
      org.projectlombok
      lombok
      true
    
    
      org.springframework.boot
      spring-boot-starter-test
      test
    
 
    
      com.baomidou
      mybatis-plus-boot-starter
      3.3.0
    
 
    
      mysql
      mysql-connector-java
      5.1.35
    
 
    
      com.baomidou
      mybatis-plus-generator
      3.3.0
    
    
      org.apache.velocity
      velocity-engine-core
      2.1
    
  
 
  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  
 

③ 创建代码生成类

package com.lcy.demo.generator;
 
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.rules.NamingStrategy;
 
public class MysqlGenerator {
  public static void main(String[] args) {
    AutoGenerator mpg = new AutoGenerator();
 
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir");
    gc.setOutputDir(projectPath + "/src/main/java");
    gc.setAuthor("liangcy");  // 作者
    gc.setOpen(false);   //生成代码后是否打开文件夹
    gc.setServiceName("%sService"); // 设置Service接口生成名称,这样生成接口前面就不会有 I
    mpg.setGlobalConfig(gc);
 
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl("jdbc:mysql://localhost:3306/mybatis-plus-demo?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername("root");
    dsc.setPassword("123456");
    mpg.setDataSource(dsc);
 
    // 包配置
    PackageConfig pc = new PackageConfig();
    pc.setModuleName("sys"); // 模块名称, 这里可以根据不同模块来写
    pc.setParent("com.lcy.demo"); // 父包名
    mpg.setPackageInfo(pc);
 
    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    strategy.setNaming(NamingStrategy.underline_to_camel);
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    strategy.setSuperControllerClass("com.lcy.demo.sys.controller.BaseController");
    strategy.setSuperEntityClass("com.lcy.demo.sys.entity.BaseEntity");
    strategy.setEntityLombokModel(true);
    strategy.setInclude("user"); // 如果要生成多个,这里可以传入String[]
    mpg.setStrategy(strategy);
    mpg.execute();
  }
 
}

补充说明:

  • 代码生成过程中用到了 Lombok 插件, 因此需要在IDEA 中安装好 Lombok插件

  • 如果我们删除了生成的代码, 包名可能会飘红, 这时我们需要 更新一下maven工程,飘红就会消失

  • 代码将生成在我们设置的 父包名 + 模块名中


上述内容就是利用mybatis-plus怎么实现一个代码自动生成功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


新闻名称:利用mybatis-plus怎么实现一个代码自动生成功能-创新互联
本文来源:http://kswjz.com/article/jshgp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流