栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-Plus逆向工程——Generator的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis-Plus逆向工程——Generator的使用

有一位志同道合的朋友给我留言说,MyBatis-Plus的逆向工程跟接口继承baseMapper有什么区别,我想了想,怎么解释都不合适,最后决定出此文章进行讲解。

环境搭建

首先创建一张数据库表

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项目

创建一个普通的SpringBoot项目,然后引入依赖,既然要跟数据库打交道,connector肯定不能少


  mysql
  mysql-connector-java
  8.0.18

另外要使用mybatis-plus,当然也要引入该starter


  com.baomidou
  mybatis-plus-boot-starter
  3.4.1

由于需要用到逆向工程,所以引入依赖


  com.baomidou
  mybatis-plus-generator
  3.4.1

还需要一个模板引擎的依赖


  org.apache.velocity
  velocity-engine-core
  2.1

为了方便起见,这里引入Lombok


  org.projectlombok
  lombok
  true

然后编写一个类,直接执行即可!

class AutoCode {
  public static void main(String[] args) {
    // 1、全局配置
    GlobalConfig globalConfig = new GlobalConfig();//构建全局配置对象
    String projectPath = System.getProperty("user.dir");// 获取当前用户的目录
    globalConfig
 .setOutputDir(projectPath + "/mybatis-plus-01-start/src/main/java")// 输出文件路径
 .setAuthor("微信搜一搜:贺贺学编程")// 设置作者名字
 .setOpen(false)// 是否打开资源管理器
 .setFileOverride(true)// 是否覆盖原来生成的
 .setIdType(IdType.AUTO)// 主键策略
 .setbaseResultMap(true)// 生成resultMap
 .setbaseColumnList(true)// XML中生成基础列
 .setServiceName("%sService");// 生成的service接口名字首字母是否为I,这样设置就没有I

    // 2、数据源配置
    DataSourceConfig dataSourceConfig = new DataSourceConfig();// 创建数据源配置
    dataSourceConfig
 .setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC")
 .setDriverName("com.mysql.cj.jdbc.Driver")
 .setUsername("root")
 .setPassword("root")
 .setDbType(DbType.MYSQL);

    // 3、包配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig
 .setParent("com.hzy")
 .setEntity("entity")
 .setController("controller")
 .setService("service")
 .setMapper("mapper");

    // 4、策略配置
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig
 .setCapitalMode(true)// 开启全局大写命名
 .setInclude("user")// 设置要映射的表
 .setNaming(NamingStrategy.underline_to_camel)// 下划线到驼峰的命名方式
 .setColumnNaming(NamingStrategy.underline_to_camel)// 下划线到驼峰的命名方式
 .setEntityLombokModel(false)// 是否使用lombok
 .setRestControllerStyle(true)// 是否开启rest风格
 .setControllerMappingHyphenStyle(true);// localhost:8080/hello_a_2


    // 5、自定义配置(配置输出xml文件到resources下)
    InjectionConfig cfg = new InjectionConfig() {
      @Override
      public void initMap() {
 // to do nothing
      }
    };
    List focList = new ArrayList<>();
    String templatePath = "/templates/mapper.xml.vm";
    // 自定义配置会被优先输出
    focList.add(new FileOutConfig(templatePath) {
      @Override
      public String outputFile(TableInfo tableInfo) {
 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
 return projectPath + "/mybatis-plus-01-start/src/main/resources/mapper/"
     + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
      }
    });
    cfg.setFileOutConfigList(focList);

    // 6、整合配置
    AutoGenerator autoGenerator = new AutoGenerator();// 构建代码生自动成器对象
    autoGenerator
 .setGlobalConfig(globalConfig)// 将全局配置放到代码生成器对象中
 .setDataSource(dataSourceConfig)// 将数据源配置放到代码生成器对象中
 .setPackageInfo(packageConfig)// 将包配置放到代码生成器对象中
 .setStrategy(strategyConfig)// 将策略配置放到代码生成器对象中
 .setCfg(cfg)// 将自定义配置放到代码生成器对象中
 .execute();// 执行!
  }
}

执行结果如下


代码中的注释比较多,我就不多说了

到此这篇关于MyBatis-Plus逆向工程——Generator的使用的文章就介绍到这了,更多相关MyBatis-Plus逆向工程内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/129538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号