Mybatis-Plus(核心功能篇 ==> 代码生成器(新版)

  • Post author:
  • Post category:其他


本章导学:

  • 什么是MP的代码生成器
  • 基于SpringBoot实现MP代码生成器

    • 创建SpringBoot工程
    • 导入所需的依赖
    • 编写yml配置文件
    • 定制MP代码生成器模板



注:本章针对的为mybatis-plus-generator 3.5.1 及其以上版本


一、什么是MP的代码生成器

官网说明:AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

官网网址如下:

代码生成器(新) | MyBatis-Plus

二、基于SpringBoot实现MP代码生成器

2.1、创建SpringBoot工程


选择 FILE–NEW PROJECT

这里勾选WEB骨架

2.2、导入所需的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- mysql连接驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>

        <!-- Mybatis-Plus坐标 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

        <!-- MP代码生成器所需要的依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

        <!-- lombok实体类快速开发 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.3、编写yml配置文件

#Tomcat端口号
server:
  port: 80

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/db_brand
      username: root
      password: 123456



mybatis-plus:
  #mapper文件的位置
  mapper-locations: classpath:mapper/*.xml
  #起别名
  type-aliases-package: com.brrbaii.pojo
  #开启日志
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #为实体类增加前缀
#  global-config:
#    db-config:
#      table-prefix: tb_

#运行日志,默认INFO级别
#logging:
#  level: debug


2.4、定制MP代码生成器模板


选择:File—Setting—Editor—File and Code Templates

模板内容如下:

package com.brrbaii;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Collections;
public class FastAuto {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/db_brand", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("brrbaii") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("D://Auto"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.brrbaii") // 设置父包名
//                            .moduleName("system") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://Auto")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user") // 设置需要生成的表名
                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }

}

直接运行这个类就大功告成了,参数设置看注释



版权声明:本文为weixin_48841931原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。