123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package com.alvin;
- import cn.smallbun.screw.core.Configuration;
- import cn.smallbun.screw.core.engine.EngineConfig;
- import cn.smallbun.screw.core.engine.EngineFileType;
- import cn.smallbun.screw.core.engine.EngineTemplateType;
- import cn.smallbun.screw.core.execute.DocumentationExecute;
- import cn.smallbun.screw.core.process.ProcessConfig;
- import com.zaxxer.hikari.HikariConfig;
- import com.zaxxer.hikari.HikariDataSource;
- import javax.sql.DataSource;
- import java.util.ArrayList;
- public class Generator {
- public static void main(String[] args) {
- //String db_url = args[0];
- //String db_username = args[1];
- //String db_password = args[2];
- //String fileOutputDir = args[3];
- //String fileName = args[4];
- //
- //generatorToFile(db_url, db_username, db_password, fileOutputDir, fileName);
- generatorToFile("jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model", "test_user", "tmOxmmc+3jznq2cX",
- "doc", "db","");
- }
- /**
- * 生成文件
- *
- * @param db_url db url
- * @param db_username 数据库用户名
- * @param db_password 数据库密码
- */
- public static void generatorToFile(String db_url, String db_username, String db_password,
- String fileOutputDir, String fileName,String ignoreTableNames) {
- //数据源
- HikariConfig hikariConfig = new HikariConfig();
- hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
- hikariConfig.setJdbcUrl(db_url);
- hikariConfig.setUsername(db_username);
- hikariConfig.setPassword(db_password);
- //设置可以获取tables remarks信息
- hikariConfig.addDataSourceProperty("useInformationSchema", "true");
- hikariConfig.setMinimumIdle(2);
- hikariConfig.setMaximumPoolSize(5);
- DataSource dataSource = new HikariDataSource(hikariConfig);
- //生成配置
- EngineConfig engineConfig = EngineConfig.builder()
- //生成文件路径
- .fileOutputDir(fileOutputDir)
- //打开目录
- .openOutputDir(true)
- //文件类型
- .fileType(EngineFileType.HTML)
- //生成模板实现
- .produceType(EngineTemplateType.freemarker)
- //自定义文件名称
- .fileName(fileName).build();
- //忽略表
- ArrayList<String> ignoreTableName = new ArrayList<>();
- for (String s : ignoreTableNames.split(",")) {
- ignoreTableName.add(s);
- }
- //ignoreTableName.add("test_user");
- //ignoreTableName.add("test_group");
- //忽略表前缀
- ArrayList<String> ignorePrefix = new ArrayList<>();
- //ignorePrefix.add("test_");
- //忽略表后缀
- ArrayList<String> ignoreSuffix = new ArrayList<>();
- //ignoreSuffix.add("_test");
- ProcessConfig processConfig = ProcessConfig.builder()
- //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
- //根据名称指定表生成
- .designatedTableName(new ArrayList<>())
- //根据表前缀生成
- .designatedTablePrefix(new ArrayList<>())
- //根据表后缀生成
- .designatedTableSuffix(new ArrayList<>())
- //忽略表名
- .ignoreTableName(ignoreTableName)
- //忽略表前缀
- .ignoreTablePrefix(ignorePrefix)
- //忽略表后缀
- .ignoreTableSuffix(ignoreSuffix).build();
- //配置
- Configuration config = Configuration.builder()
- //版本
- .version("1.0.0")
- //描述
- .description("数据库设计文档生成")
- //数据源
- .dataSource(dataSource)
- //生成配置
- .engineConfig(engineConfig)
- //生成配置
- .produceConfig(processConfig)
- .build();
- //执行生成
- new DocumentationExecute(config).execute();
- }
- }
|