diff --git a/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java b/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java new file mode 100644 index 0000000..f02442e --- /dev/null +++ b/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java @@ -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("") + ; + } +} \ No newline at end of file