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肯定不能少

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.18</version>
</dependency>

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

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.1</version>
</dependency>

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

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-generator</artifactId>
  <version>3.4.1</version>
</dependency>

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

<dependency>
  <groupId>org.apache.velocity</groupId>
  <artifactId>velocity-engine-core</artifactId>
  <version>2.1</version>
</dependency>

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

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

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

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<FileOutConfig> 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逆向工程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot整合mybatis-plus逆向工程的实现

    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生.官方文档 代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity.Mapper.Mapper XML.Service.Controller 等各个模块的代码,极大的提升了开发效率. mybatis-plus是根据数据库表来生成对应的实体类,首先我们创建数据库表Us

  • Mybatis Plus 逆向工程介绍

    目录 一.创建数据库 二.配置pom.xml 文件 三.在项目同级目录建立mgb.xml 四.在测试类中写入方法 一.创建数据库 注:给tbl_emp的表创建外键 数据库以及表的建立: 二.配置pom.xml 文件    <dependency>         <groupId>org.mybatis.generator</groupId>         <artifactId>mybatis-generator-core</artifactId&

  • Mybatis Plus 逆向工程介绍

    目录 一.创建数据库 二.配置pom.xml 文件 三.在项目同级目录建立mgb.xml 四.在测试类中写入方法 一.创建数据库 二.配置pom.xml 文件    <dependency>         <groupId>org.mybatis.generator</groupId>         <artifactId>mybatis-generator-core</artifactId>         <version>1

  • Mybatis中通过generator生成mapper、Dao、mapper.xml的方法

    1.将如下东西复制到项目中,或某一个文件夹. 2.更改generator.xml (1)更改数据驱动包的位置,选择你所安装的目录: (2)更改你所要连接的数据库的名称,数据库的user和password (3)更改下图 targetPakage的地方,targetProject的地方,这里targetProject所在的地方一定要存在 要不然会报错 (4)在tableName中填写你所要填写的表名.domainObjectName填写你想要生成的名字. 3.进入命令行窗口运行: 1.进入项目 的

  • 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

  • MyBatis的逆向工程详解

    一:什么是逆行工程. MyBatis是一款优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 当数据库表比较多的时候,重复的创建pojo对象和简单的数据库表的(CRUD)操作的mapper,效率低,官方给出了使用myb

  • 基于mybatis逆向工程的使用步骤详解

    使用mybatis生成逆向工程的详细步骤,我个人感觉这个是最简单的一个了,虽然网上有很多种的方法来生成逆向工程,可是这个方法最简单.在这里我是使用maven搭建的环境,但是在正常的环境下也是一样的. 步骤: 1.创建一个genreatorConfig.xml文件,这个文件的名字可以任意.我创建的时候是将它放在了src/main/resources下,这个文件的内容并不需要去记,只需要去网上找就可以了.我们要做的只是对配置文件当中的一些部分做修改,修改成自己的数据就可以了. <?xml versi

  • Mybatis Plus插件三种方式的逆向工程的使用

    本文源码:GitHub·点这里 || GitEE·点这里 一.逆向工程简介 在Java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据表自动生成执行所需要的基础代码,例如:mapper接口,sql映射文件,pojo实体类等,避免基础代码维护的繁杂过程. 在实际的使用中,常用的逆向工程方式如上,mybatis框架,mybatis-plus框架,插件方式. 二.Mybatis方式 1.基础描述 基于xml配置的方式,生成mybatis

  • 解决IDEA中多模块下Mybatis逆向工程不生成相应文件的情况

    首先Mybatis工程中配置文件需要放在resources包下: 在配置文件中需要注意两点: 1.配置数据库连接的jar包,要使用绝对路径,其他配置和之前不是多模块的情况一样: 2.配置对应生成文件的所在目录时,也要使用绝对路径: 接下编写逆向工程启动类 其中指定逆向工程配置文件时,要使用绝对路径: import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuratio

  • Mybatis使用命令生成逆向工程的方法

    MyBatis Generator命令生成 1.下载jar:点击此处进入官网 2.解压后打开lib在里面创建generatorConfig.xml和一个src文件夹. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//

  • idea使用Mybatis逆向工程插件详情

    目录 一.使用mybatis连接数据库 二.安装Better-Mybatis-Generator插件 三.关于example类详解 1.example成员变量 2.example使用 一.使用mybatis连接数据库 添加连接的mysql的信息,测试链接成功即可. 二.安装Better-Mybatis-Generator插件 安装成功后,在需要生成的表上右键选择mybatis-generator. 添加要生成的一些配置. 点击OK,第一次生成会弹出窗口,需要输入数据库的帐号密码.可以看到生成该表

随机推荐