Bootstrap

Mybatis-Plus 代码生成工具

代码生成器(新)
创建SpringBoot项目,并引入依赖
  1. 在pom.xml文件中导入相关依赖
  <dependencies>
    <!-- web 依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--    mysql 依赖-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>

    <!--整合mybatis plus https://baomidou.com/-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.1</version>
    </dependency>

    <!--    代码生成器(新)-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.5.1</version>
    </dependency>

    <!--    hutool 工具类)-->
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.3.3</version>
    </dependency>

    <!-- 代码生成器模板引擎 freemarker  -->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
    </dependency>

  </dependencies>
  1. 编写配置类 CodeGenerator.java
package com.example.generator;

import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;


import java.util.Collections;

/**
 * mybatis-plus 代码生成器
 * @author fangqi174956
 */
public class CodeGenerator {
    // ----------------------------------------以下必修修改------------------------------------------

    /**  数据库名称  */
    private static final String DATASOURCE = "base";

    /** 项目根路径 win系统 D:\毕设\作品\2022.5\东辉煤业集团生产调度报表统计分析系统\springboot\  */
    private static final String basePath = "/Users/fangqi174956/Downloads/security/";

    /** 数据库需要生成代码的表名 */
    private static final String tableName = "sys_admin";
    /** 生成页面的菜单名称 */
    private static final String menuName = "管理";
    /** 模块名称 */
    private static final String moduleName = "security-generator";
    private static final String packageName = "com.example.generator";

    /** 数据库密码 (填你自己的密码,默认 123456)*/
    private static final String PASSWORD = "root1234";

    // ----------------------------------------以上必修修改-----------------------------------------


    public static void main(String[] args) throws Exception {

        // 生成SpringBoot
        generate(tableName);
    }

    /**  数据源配置  */
    private static final String url = "jdbc:mysql://localhost:3306/"+ DATASOURCE  +"?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
    private static final String username = "root";
    private static final String password = PASSWORD;

    /**
     * 代码自动生成方法
     * 生成SpringBoot文件 包含controller / service / service.impl / mapper / entity / mapper.xml
     */
    private static void generate(String tableName) {
        final String projectPath = System.getProperty("user.dir");
        // 对一些特殊表进行拦截
        // 不能生成系统基础设置表
//        String[] sysTables = new String[]{"sys_admin","sys_role","sys_menu","sys_menu_role","sys_admin_role"};
//        if(ArrayUtil.contains(sysTables,tableName)){
//            System.err.println("不能创建系统基础设置表!");
//            return;
//        }

        /** 快速生成配置 */
        FastAutoGenerator.create(url, username, password)
                .packageConfig(builder -> {
                    builder.parent(packageName) // 设置父包名
                            .moduleName(null) // 设置父包模块名
                            // 设置mapperXml生成路径
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/" + moduleName + "/src/main/resources/mapper/"));
                })
                .globalConfig(builder -> {
                    builder.author("Auth:xxx") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .disableOpenDir()
                            .outputDir(projectPath + "/" + moduleName + "/src/main/java/"); // 指定输出目录
                })
                .strategyConfig(builder -> {
                    builder.entityBuilder().enableLombok();
//                    builder.mapperBuilder().enableMapperAnnotation().build();
                    builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符
                            .enableRestStyle();  // 开启生成@RestController 控制器
                    builder.addInclude(tableName) // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
                })
                // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}