Generator.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.alvin;
  2. import cn.smallbun.screw.core.Configuration;
  3. import cn.smallbun.screw.core.engine.EngineConfig;
  4. import cn.smallbun.screw.core.engine.EngineFileType;
  5. import cn.smallbun.screw.core.engine.EngineTemplateType;
  6. import cn.smallbun.screw.core.execute.DocumentationExecute;
  7. import cn.smallbun.screw.core.process.ProcessConfig;
  8. import com.zaxxer.hikari.HikariConfig;
  9. import com.zaxxer.hikari.HikariDataSource;
  10. import javax.sql.DataSource;
  11. import java.util.ArrayList;
  12. public class Generator {
  13. public static void main(String[] args) {
  14. //String db_url = args[0];
  15. //String db_username = args[1];
  16. //String db_password = args[2];
  17. //String fileOutputDir = args[3];
  18. //String fileName = args[4];
  19. //
  20. //generatorToFile(db_url, db_username, db_password, fileOutputDir, fileName);
  21. generatorToFile("jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model", "test_user", "tmOxmmc+3jznq2cX",
  22. "doc", "db","");
  23. }
  24. /**
  25. * 生成文件
  26. *
  27. * @param db_url db url
  28. * @param db_username 数据库用户名
  29. * @param db_password 数据库密码
  30. */
  31. public static void generatorToFile(String db_url, String db_username, String db_password,
  32. String fileOutputDir, String fileName,String ignoreTableNames) {
  33. //数据源
  34. HikariConfig hikariConfig = new HikariConfig();
  35. hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
  36. hikariConfig.setJdbcUrl(db_url);
  37. hikariConfig.setUsername(db_username);
  38. hikariConfig.setPassword(db_password);
  39. //设置可以获取tables remarks信息
  40. hikariConfig.addDataSourceProperty("useInformationSchema", "true");
  41. hikariConfig.setMinimumIdle(2);
  42. hikariConfig.setMaximumPoolSize(5);
  43. DataSource dataSource = new HikariDataSource(hikariConfig);
  44. //生成配置
  45. EngineConfig engineConfig = EngineConfig.builder()
  46. //生成文件路径
  47. .fileOutputDir(fileOutputDir)
  48. //打开目录
  49. .openOutputDir(true)
  50. //文件类型
  51. .fileType(EngineFileType.HTML)
  52. //生成模板实现
  53. .produceType(EngineTemplateType.freemarker)
  54. //自定义文件名称
  55. .fileName(fileName).build();
  56. //忽略表
  57. ArrayList<String> ignoreTableName = new ArrayList<>();
  58. for (String s : ignoreTableNames.split(",")) {
  59. ignoreTableName.add(s);
  60. }
  61. //ignoreTableName.add("test_user");
  62. //ignoreTableName.add("test_group");
  63. //忽略表前缀
  64. ArrayList<String> ignorePrefix = new ArrayList<>();
  65. //ignorePrefix.add("test_");
  66. //忽略表后缀
  67. ArrayList<String> ignoreSuffix = new ArrayList<>();
  68. //ignoreSuffix.add("_test");
  69. ProcessConfig processConfig = ProcessConfig.builder()
  70. //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
  71. //根据名称指定表生成
  72. .designatedTableName(new ArrayList<>())
  73. //根据表前缀生成
  74. .designatedTablePrefix(new ArrayList<>())
  75. //根据表后缀生成
  76. .designatedTableSuffix(new ArrayList<>())
  77. //忽略表名
  78. .ignoreTableName(ignoreTableName)
  79. //忽略表前缀
  80. .ignoreTablePrefix(ignorePrefix)
  81. //忽略表后缀
  82. .ignoreTableSuffix(ignoreSuffix).build();
  83. //配置
  84. Configuration config = Configuration.builder()
  85. //版本
  86. .version("1.0.0")
  87. //描述
  88. .description("数据库设计文档生成")
  89. //数据源
  90. .dataSource(dataSource)
  91. //生成配置
  92. .engineConfig(engineConfig)
  93. //生成配置
  94. .produceConfig(processConfig)
  95. .build();
  96. //执行生成
  97. new DocumentationExecute(config).execute();
  98. }
  99. }