|
@@ -0,0 +1,103 @@
|
|
|
+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) {
|
|
|
+
|
|
|
+ //数据源
|
|
|
+ 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<>();
|
|
|
+ //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();
|
|
|
+ }
|
|
|
+}
|