SpringBoot MyBatisPlus3.4.3最新版自动生成代码 快速上手

SpringBoot MyBatisPlus3.4.3自动生成代码

      MyBatis-Plus 的代码生成器,通过 自动生成可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。而mybatis-plus-generator 3.5.1+版本的FastAutoGenerator对于历史版本的配置项更简洁。

准备工作

创建springboot工程(这就不多说了)

1.导入依赖

        <!-- mybatisplus依赖,注意不用引入mybatis依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.4</version>
        </dependency>
        <!-- mysql依赖可换成对应版本 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!-- mybatis-plus代码生成器依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- 自动生成代码的模板引擎,mybatis-plus默认的-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
         <!-- 由于生成的controller会用到web的注解-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2.新建包名称为generator,创建MyGenerator类

需要对
1.数据源配置,(配置url,username,password等)
2.全局配置, (作者信息,输出目录等)
3.包配置, , (Entity、Mapper、Mapper XML、Service、Controller 等各个模块的包命名等)
4.策略配置, (配置生成那些表,怎么生成等)

注意以下路径需要修改为实制项目路径,要生成的数据库表名需要修改为实制的,数据库源url修改为对应的数据源

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;

import java.util.Collections;

/**
 * 自动生成类
 *
 * @author :ShiYI
 * @date :Created in 2021/9/28
 */
public class MyGenerator {
    public static void main(String[] args) {
        FastAutoGenerator.create( 
        //数据源配置,url需要修改
        new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/user_db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC","root","123456")
                        .dbQuery(new MySqlQuery())
                        .schema("mybatis-plus")
                        .typeConvert(new MySqlTypeConvert())
                        .keyWordsHandler(new MySqlKeyWordsHandler())
                        )
                        
                 //全局配置
                .globalConfig(builder -> {
                    builder.author("ShiYi") // 设置作者
                            .disableOpenDir()//禁止打开输出目录
                            //.enableSwagger() // 开启 swagger 模式
                            //.fileOverride() // 覆盖已生成文件
                            .outputDir(System.getProperty("user.dir")+"/src/main/java"); // 指定输出目录
                })
                
                //包配置
                .packageConfig(builder -> {
                    builder.parent("com.shiyi.mybatis_plus") // 设置父包名,根据实制项目路径修改
                            //.moduleName("sys")
                            .entity("pojo")
                            .service("service")
                            .serviceImpl("service.impl")
                            .mapper("mapper")
                            .xml("mapper.xml")
                            .controller("controller")
                            //.other("other")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/resources/mapper"));
                })
                
                //策略配置
                .strategyConfig(builder -> {
                    builder.addInclude("t_role") // 设置需要生成的表名
                            .addTablePrefix("t_", "c_") // 设置过滤表前缀
                            //.entityBuilder() //实体类配置
                            //.enableLombok() //使用lombok
                            //.enableTableFieldAnnotation()//实体类字段注解
                            //.controllerBuilder()//controller配置
                            //.enableRestStyle()//开启restcontroller
                            .mapperBuilder()
                            .enableMapperAnnotation();//开启mapper注解
                            .enableBaseResultMap()//启用 BaseResultMap 生成
                            .enableBaseColumnList();//启用 BaseColumnList
                })
                //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();

    }
}

3.点击运行

点击运行上面的主程序就能自动生成了

生成的效果图:

image-20210928120153866


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