package com.gkhy.exam.system;
|
|
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.rules.DateType;
|
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
|
|
import java.util.Arrays;
|
import java.util.Collections;
|
import java.util.List;
|
|
public class MybatisPlusGenerator {
|
public static void main(String[] args) {
|
System.out.println(System.getProperty("user.dir"));
|
String model="/exam-system";
|
// 数据库配置
|
DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig
|
.Builder("jdbc:mysql://192.168.0.23:7006/train_exam" +
|
"?useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
|
, "root", "2farwL3yPXfbH2AP");
|
FastAutoGenerator.create(dataSourceConfigBuilder)
|
// 全局配置
|
.globalConfig((scanner, builder) -> {
|
builder.author("kzy")
|
// 覆盖已生成文件
|
.fileOverride()
|
// 指定输出目录
|
.outputDir(System.getProperty("user.dir") +model+ "/src/main/java/")
|
// 开启 swagger 模式
|
.enableSwagger()
|
// 禁止打开输出目录
|
.disableOpenDir()
|
// 时间策略
|
.dateType(DateType.TIME_PACK)
|
// 类注释日期的格式
|
.commentDate("yyyy-MM-dd HH:mm:ss")
|
.build();
|
})
|
// 包配置
|
.packageConfig((scanner, builder) -> {
|
// 父包名
|
builder.parent("com.gkhy.exam")
|
// 模块名
|
.moduleName("system")
|
// Entity 包名
|
.entity("domain")
|
// Service 包名
|
.service("service")
|
// Service Impl 包名
|
.serviceImpl("service.impl")
|
// Controller 包名
|
.controller("controller")
|
// Mapper 包名
|
.mapper("mapper")
|
// MapperXML 包名
|
.xml("mapper.system")
|
// 路径配置信息
|
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") +model+ "/src/main/resources/mapper/system/"));
|
})
|
//策略配置
|
.strategyConfig((scanner, builder) -> {
|
// 增加表匹配(内存过滤), include 与 exclude 只能配置一项
|
builder.addInclude(getTables(scanner.apply("请输入要生成的表名,多个英文逗号分隔?所有输入 all")))
|
// 增加表排除匹配(内存过滤), include 与 exclude 只能配置一项
|
// .addExclude(scanner.apply("请输入要忽略的表名,多个英文逗号分隔?"))
|
// 增加过滤表后缀
|
.addTableSuffix("")
|
// 增加过滤表前缀
|
.addTablePrefix("")
|
// service 策略配置
|
.serviceBuilder()
|
// 格式化文件名称
|
.formatServiceFileName("%sService")
|
.formatServiceImplFileName("%sServiceImpl")
|
// 实体策略配置
|
.entityBuilder()
|
// 开启 lombok 模型
|
.enableLombok()
|
// 开启生成实体时生成字段注解
|
.enableTableFieldAnnotation()
|
// controller 策略配置
|
.controllerBuilder()
|
.formatFileName("%sController")
|
// 开启生成@RestController 控制器
|
.enableRestStyle()
|
// mapper 策略配置
|
.mapperBuilder()
|
.formatMapperFileName("%sMapper")
|
.enableMapperAnnotation()
|
.formatXmlFileName("%sMapper");
|
})
|
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
|
.templateEngine(new FreemarkerTemplateEngine())
|
.execute();
|
}
|
|
|
|
/**
|
* 处理 all 情况
|
*
|
* @param tables
|
* @return
|
*/
|
protected static List<String> getTables(String tables) {
|
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
|
}
|
}
|