feat(generator): 新增新版本代码生成配置

This commit is contained in:
han0
2023-11-08 10:05:55 +08:00
parent e5f474f379
commit 6ff7bf0caa

View File

@@ -0,0 +1,105 @@
package mjkf.xinke.main.common.generator;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import java.util.Collections;
/**
* @author han0
*/
@SuppressWarnings("FieldCanBeLocal")
public class DataDbMpGenerator {
private static String author = "han0";
private static String projectPath = System.getProperty("user.dir");
private static String url = "jdbc:mysql://192.168.1.3:4306/material_manage?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&useInformationSchema=true";
private static String username = "root";
private static String password = "Xxs123456";
private static String schema = "material_manage";
private static String[] tableList = {
"OIL",
"CEMENT",
"ASPHALT_DOMESTIC",
"ASPHALT_IMPORTED",
"STEEL_PLATE",
"STEEL_REBAR",
"STEEL_STRAND",
};
public static void main(String[] args) {
FastAutoGenerator
.create(url, username, password)
.globalConfig(DataDbMpGenerator::globalConfigBuilder)
.dataSourceConfig(DataDbMpGenerator::dataSourceConfigBuilder)
.packageConfig(DataDbMpGenerator::packageConfigBuilder)
.strategyConfig(DataDbMpGenerator::strategyConfigBuilder)
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板默认的是Velocity引擎模板
.templateConfig(DataDbMpGenerator::templateConfigBuilder)
.execute()
;
}
private static void globalConfigBuilder(GlobalConfig.Builder builder) {
builder
.author(author) // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.disableOpenDir()
.outputDir(projectPath + "/src/main/java")
;
}
private static void dataSourceConfigBuilder(DataSourceConfig.Builder builder) {
builder
.keyWordsHandler(new MySqlKeyWordsHandler())
.schema(schema)
;
}
private static void packageConfigBuilder(PackageConfig.Builder builder) {
builder.parent("mjkf.xinke.main") // 设置父包名
.moduleName("") // 设置父包模块名
.mapper("dao")
.entity("model.db")
.controller("controller")
.service("service")
.serviceImpl("service")
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://")) // 设置mapperXml生成路径
;
}
private static void strategyConfigBuilder(StrategyConfig.Builder builder) {
builder
.addInclude(tableList) // 设置需要生成的表名
// .addTablePrefix("t_", "c_") // 设置过滤表前缀
.entityBuilder() // Entity 策略配置
.enableActiveRecord() // 开启 ActiveRecord 模型
.idType(IdType.AUTO) // 主键策略
.naming(NamingStrategy.underline_to_camel) // 设置命名规则 底线变驼峰
.columnNaming(NamingStrategy.underline_to_camel) // 设置命名规则 底线变驼峰
.enableTableFieldAnnotation() //
.enableLombok() // 设置是否加入lombok
.serviceBuilder()
.formatServiceFileName("%sService")
.superServiceClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl") // 设置 service 继承类
.controllerBuilder()
.enableRestStyle()
;
}
private static void templateConfigBuilder(TemplateConfig.Builder builder) {
builder
.xml("")
.service("template/service.java")
.serviceImpl("")
;
}
}