MyBatis-Plus代码生成器的使用

1、MyBatis-Plus简介

​ 在代码开发中,肯定会遇到代码中对应数据库表去编写实体类的工作,若数据库表数量多的情况下,编写Entity,属实是一件消耗时间,且并没有什么技术含量的事情,如何解决呢?

​ 现在就来介绍MyBatis-Plus代码生成器,众所周知,MyBatis-Plus是一款MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus代码生成器,可以一键生成Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

​ Mybatis-Plus具体详情请至MyBatis-Plus官网。

2、MyBatis-Plus代码生成器使用方式

接下来将介绍如何使用MyBatis-Plus代码生成器

第一步 添加依赖

在SpringBoot项目中的pom.xml中需要添加以下依赖

        <!--代码生成器-->
        <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.0</version>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

在MyBatis-Plus官网中提及,在3.0.3版本后移除了代码生成器模板引擎的默认依赖,需要手动添加相关依赖,因为代码生成器中使用到了Swagger注解,所以也要引入Swagger依赖,来保证生成的代码不报红。

Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件

第二步 编写配置

以下是我自己的配置,编写在SpringBoot中的test中,因为配置代码只需要执行一次,并不需要部署到服务器中。

也可以去官网根据官网教程去自定义模板引擎和代码模板

https://mp.baomidou.com/guide/generator.html

以下配置类有几个地方必须根据自己实际情况改动

1、数据源配置

根据自己的数据库地址和数据库名称进行改动

dsc.setUrl("jdbc:mysql://localhost:3306/cl?serverTimezone=GMT%2B8&characterEncoding=utf-8");

若是mysql5左右的版本则驱动需要把cj删除

dsc.setDriverName("com.mysql.cj.jdbc.Driver");

数据库用户和密码需要根据自己的数据库进行更改

dsc.setUsername("root");

dsc.setPassword("111111");

2、包配置

pc.setParent("com.nero.mybatisplus");

package com.nero.mybatisplus.generator;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;



/**
 * @author chengliang
 * @create 2021-09-27
 */
public class CondGenerator {

    @Test
    public void genCode() {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("Nero");
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setServiceName("%sService");	//去掉Service接口的首字母I
        gc.setIdType(IdType.AUTO); //主键策略
        gc.setSwagger2(true);//开启Swagger2模式
        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/cl?serverTimezone=GMT%2B8&characterEncoding=utf-8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("111111");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.nero.mybatisplus");
        pc.setEntity("pojo.entity"); //此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok
        strategy.setLogicDeleteFieldName("is_deleted");//逻辑删除字段名
        strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去掉布尔值的is_前缀(确保tinyint(1))
        strategy.setRestControllerStyle(true); //restful api风格控制器
        mpg.setStrategy(strategy);

        // 6、执行
        mpg.execute();
    }
}

第三步 直接启动配置类

就可以看见在自己工程的目录下,自动生成的内容

Snipaste_2021-09-27_10-48-06

Snipaste_2021-09-27_10-49-14

以上就是Mybatis-Plus代码生成器的全部教程了,由于本人能力有限,欢迎访问个人博客,进行技术交流,如有不足,欢迎指正~

posted @ 2021-09-27 11:12  卷卷丶  阅读(1028)  评论(0)    收藏  举报