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

【Spring Boot组件集成实战】集成MyBatis-Plus-Generator代码生成器(Version 3.5.1+)

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

【Spring Boot组件集成实战】集成MyBatis-Plus-Generator代码生成器(Version 3.5.1+)

更多精彩内容,请访问 Spring Boot组件集成实战专栏 !

本教程适仅适用 3.5.1 以上版本,对历史版本的不兼容。

上一篇文章 【Spring Boot组件集成实战】集成Druid数据库连接池和MyBatis-Plus(含代码生成器) 中,我们使用代码生成器是 3.4.1 版本的。

本文将采用最新版本 3.5.1,实现MP的代码生成器。

文章目录
    • 使用方法:
      • 1、导包:
      • 2、示例:

使用方法: 1、导包:
        
        
            org.springframework.boot
            spring-boot-starter-freemarker
        

        
        
            com.baomidou
            mybatis-plus
            3.4.3.2
        

        
            com.baomidou
            mybatis-plus-generator
            3.5.1
        

        
        
            com.alibaba
            druid-spring-boot-starter
            1.2.6
        

        
        
            mysql
            mysql-connector-java
            runtime
        
2、示例:
package com.cxhit.mybatisplus.generator;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class FastCodeGenerator {

    // 数据库连接字符
    private static final String URL = "jdbc:mysql://localhost:3306/db_study_mp?useUnicode=true&serverTimezone=UTC&useSSL=false&characterEncoding=utf8";
    // 数据库用户名
    private static final String USERNAME = "chen";
    // 数据库密码
    private static final String PASSWORD = "123456";
    // 项目根路径(注意:本项目中追加的是此组件模块的文件名。实际的单模块项目中,请使用下面的)
    private static final String projectPath = System.getProperty("user.dir") + "/study-mybatis-plus-fast-generator";
    // 项目根路径(单模块下,使用此句)
    // private static final String projectPath = System.getProperty("user.dir");

    
    public static void main(String[] args) {
        simpleGenerator();
    }

    
    protected static void simpleGenerator() {

        // 包路径
        String packagePath = projectPath + "/src/main/java";
        // XML文件的路径
        String mapperXmlPath = projectPath + "/src/main/resources";

        // 开始执行代码生成
        FastAutoGenerator.create(URL, USERNAME, PASSWORD)
                // 全局配置
                .globalConfig(builder -> builder
                        // 作者名称
                        .author("拾年之璐")
                        // 开启覆盖已生成的文件。注释掉则关闭覆盖。
                        .fileOverride()
                        // 禁止打开输出目录。注释掉则生成完毕后,自动打开生成的文件目录。
                        .disableOpenDir()
                        // 指定输出目录
                        .outputDir(packagePath)
                        // 开启swagger2.注释掉则默认关闭。
                        // .enableSwagger()
                        // 指定时间策略。
                        .dateType(DateType.TIME_PACK)
                        // 注释时间策略。
                        .commentDate("yyyy-MM-dd")
                )

                // 包配置
                .packageConfig((scanner, builder) -> builder
                        .parent("com.cxhit.mybatisplus.generator")
                        .moduleName(scanner.apply("请输入模块名:"))
                        // mapper.xml 文件的路径
                        .pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperXmlPath + "/mapper"))
                )

                // 策略配置
                .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
                        .controllerBuilder()
                        .enableRestStyle()
                        .enableHyphenStyle()
                        .entityBuilder()
                        // .enableLombok()
                        .addTableFills(
                                new Column("create_time", FieldFill.INSERT)
                        ).build()
                )

                //模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
                //.templateEngine(new BeetlTemplateEngine())
                .templateEngine(new FreemarkerTemplateEngine())

                // 执行
                .execute();
    }

    
    protected static void completeGenerator() {
        // TODO 待完善
    }

    // 处理 all 情况
    protected static List getTables(String tables) {
        return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
    }
}

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

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

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