当前位置:   article > 正文

使用Screw一键生成数据库设计文档,解决数据库表太多不利于浏览_数据库文档生成工具

数据库文档生成工具

介绍:Screw是一个用于生成数据库文档的开源工具。它支持从数据库中提取表结构、列信息、索引等元数据,然后将其生成为可视化的文档,Screw支持多种数据库,包括MySQL、Oracle等。

官网地址:https://gitee.com/leshalv/screw

目录

介绍:Screw是一个用于生成数据库文档的开源工具。它支持从数据库中提取表结构、列信息、索引等元数据,然后将其生成为可视化的文档,Screw支持多种数据库,包括MySQL、Oracle等。

1、生成文档

一:添加依赖: 在Spring Boot项目的pom.xml文件中添加Screw的依赖:

二、编写代码工具类

三、生成后的样子

 2、生成html文件

总结


方式一:使用代码生成文档

1:添加依赖: 在Spring Boot项目的pom.xml文件中添加Screw的依赖:

  1. <dependency>
  2. <groupId>cn.smallbun.screw</groupId>
  3. <artifactId>screw-core</artifactId>
  4. <version>1.0.5</version>
  5. </dependency>

2、编写代码工具类

  1. package com.xs.wastesorting.utils;
  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. import java.util.List;
  13. /**
  14. * 生成数据库文档工具类
  15. */
  16. public class DatabaseDesignDocUtil {
  17. public static void main(String[] args) {
  18. //执行方法
  19. documentGeneration();
  20. }
  21. /**
  22. * 文档生成
  23. */
  24. public static void documentGeneration() {
  25. //数据源
  26. HikariConfig hikariConfig = new HikariConfig();
  27. hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
  28. //数据库连接地址 xxxx是需要连接的数据库名称
  29. hikariConfig.setJdbcUrl("jdbc:mysql://192.168.1.110:3306/xxxx");
  30. //数据库用户名
  31. hikariConfig.setUsername("root");
  32. //数据库密码
  33. hikariConfig.setPassword("root");
  34. //设置可以获取tables remarks信息
  35. hikariConfig.addDataSourceProperty("useInformationSchema", "true");
  36. hikariConfig.setMinimumIdle(2);
  37. hikariConfig.setMaximumPoolSize(5);
  38. DataSource dataSource = new HikariDataSource(hikariConfig);
  39. //生成配置
  40. EngineConfig engineConfig = EngineConfig.builder()
  41. //生成文件路径
  42. .fileOutputDir("G:\\dbDoc\\")
  43. //打开目录
  44. .openOutputDir(true)
  45. //文件类型
  46. .fileType(EngineFileType.WORD)
  47. //生成模板实现
  48. .produceType(EngineTemplateType.freemarker)
  49. //自定义文件名称
  50. .fileName("萧山垃圾分类数据库设计文档").build();
  51. //忽略表
  52. List<String> ignoreTableName = new ArrayList<>();
  53. ignoreTableName.add("test_user");
  54. ignoreTableName.add("test_group");
  55. //忽略表前缀
  56. ArrayList<String> ignorePrefix = new ArrayList<>();
  57. ignorePrefix.add("ia_");
  58. ignorePrefix.add("ie_");
  59. ignorePrefix.add("sys_");
  60. ignorePrefix.add("im_");
  61. //忽略表后缀
  62. ArrayList<String> ignoreSuffix = new ArrayList<>();
  63. ignoreSuffix.add("_test");
  64. ProcessConfig processConfig = ProcessConfig.builder()
  65. //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
  66. //根据名称指定表生成
  67. .designatedTableName(new ArrayList<>())
  68. //根据表前缀生成
  69. .designatedTablePrefix(new ArrayList<>())
  70. //根据表后缀生成
  71. .designatedTableSuffix(new ArrayList<>())
  72. //忽略表名
  73. .ignoreTableName(ignoreTableName)
  74. //忽略表前缀
  75. .ignoreTablePrefix(ignorePrefix)
  76. //忽略表后缀
  77. .ignoreTableSuffix(ignoreSuffix).build();
  78. //配置
  79. Configuration config = Configuration.builder()
  80. //版本
  81. .version("1.0.0")
  82. //描述
  83. .description("数据库设计文档生成")
  84. //数据源
  85. .dataSource(dataSource)
  86. //生成配置
  87. .engineConfig(engineConfig)
  88. //生成配置
  89. .produceConfig(processConfig)
  90. .build();
  91. //执行生成
  92. new DocumentationExecute(config).execute();
  93. }
  94. }

3、生成后的样子

 4、生成html文件

  1. import cn.smallbun.screw.core.Configuration;
  2. import cn.smallbun.screw.core.execute.DocumentationExecute;
  3. import cn.smallbun.screw.core.process.ProcessConfig;
  4. import cn.smallbun.screw.core.process.ProcessConfigBuilder;
  5. import cn.smallbun.screw.core.process.ProcessFileType;
  6. import cn.smallbun.screw.core.process.ProcessManager;
  7. import cn.smallbun.screw.core.process.container.AbstractContainer;
  8. import cn.smallbun.screw.core.process.container.DefaultFileOutput;
  9. import cn.smallbun.screw.core.process.container.DefaultTableStructure;
  10. import cn.smallbun.screw.core.process.container.FileOutput;
  11. import cn.smallbun.screw.core.process.control.ProcessControlConfig;
  12. import cn.smallbun.screw.core.util.StringUtils;
  13. import org.springframework.boot.SpringApplication;
  14. import org.springframework.boot.autoconfigure.SpringBootApplication;
  15. import javax.sql.DataSource;
  16. import java.util.ArrayList;
  17. import java.util.Arrays;
  18. import java.util.List;
  19. @SpringBootApplication
  20. public class DatabaseDocGeneratorApplication {
  21. public static void main(String[] args) {
  22. SpringApplication.run(DatabaseDocGeneratorApplication.class, args);
  23. // 数据库连接配置
  24. DataSource dataSource = // 获取您的数据源;
  25. // 文档生成配置
  26. Configuration config = Configuration.builder()
  27. .version("1.0.0")
  28. .dataSource(dataSource)
  29. .engineConfig(getEngineConfig())
  30. .produceConfig(getProcessConfig())
  31. .build();
  32. // 文档生成执行
  33. new DocumentationExecute(config).execute();
  34. }
  35. private static ProcessConfig getProcessConfig() {
  36. ProcessConfig processConfig = ProcessConfig.builder()
  37. .fileOutput(getFileOutput())
  38. .processType(ProcessFileType.HTML) // 生成HTML格式的文档
  39. .build();
  40. processConfig.getPackageConfig().setUrl("your.package.name"); // 设置需要生成文档的包路径
  41. return processConfig;
  42. }
  43. private static FileOutput getFileOutput() {
  44. return new DefaultFileOutput("database-documentation", ""); // 指定输出目录
  45. }
  46. private static AbstractContainer getEngineConfig() {
  47. ProcessControlConfig processControlConfig = ProcessControlConfig.builder()
  48. .designatedTableName(new ArrayList<>())
  49. .ignoreTableName(Arrays.asList("your_ignore_table_1", "your_ignore_table_2")) // 忽略不生成文档的表名
  50. .build();
  51. return new DefaultTableStructure(processControlConfig);
  52. }
  53. }
最后直接运行main方法即可生成数据库设计文档!

方式二:使用maven插件生成

1、注意:使用maven插件依旧要引入screw依赖

  1. <dependency>
  2. <groupId>cn.smallbun.screw</groupId>
  3. <artifactId>screw-core</artifactId>
  4. <version>1.0.5</version>
  5. </dependency>

2、引入maven插件

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>cn.smallbun.screw</groupId>
  5. <artifactId>screw-maven-plugin</artifactId>
  6. <version>${lastVersion}</version>
  7. <dependencies>
  8. <!-- HikariCP -->
  9. <dependency>
  10. <groupId>com.zaxxer</groupId>
  11. <artifactId>HikariCP</artifactId>
  12. <version>3.4.5</version>
  13. </dependency>
  14. <!--mysql driver-->
  15. <dependency>
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <version>8.0.20</version>
  19. </dependency>
  20. </dependencies>
  21. <configuration>
  22. <!--username-->
  23. <username>登录名</username>
  24. <!--password-->
  25. <password>数据库密码</password>
  26. <!--driver-->
  27. <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
  28. <!--jdbc url 数据库连接地址-->
  29. <jdbcUrl>jdbc:mysql://127.0.0.1:3306/xxxx?serverTimezone=UTC</jdbcUrl>
  30. <!--生成文件类型-->
  31. <fileType>HTML</fileType>
  32. <!--打开文件输出目录-->
  33. <openOutputDir>false</openOutputDir>
  34. <!--生成模板-->
  35. <produceType>freemarker</produceType>
  36. <!--文档名称 为空时:将采用[数据库名称-描述-版本号]作为文档名称-->
  37. <fileName>测试文档名称</fileName>
  38. <!--描述-->
  39. <description>数据库文档生成</description>
  40. <!--版本-->
  41. <version>${project.version}</version>
  42. <!--标题-->
  43. <title>数据库文档</title>
  44. </configuration>
  45. <executions>
  46. <execution>
  47. <phase>compile</phase>
  48. <goals>
  49. <goal>run</goal>
  50. </goals>
  51. </execution>
  52. </executions>
  53. </plugin>
  54. </plugins>
  55. </build>

3、运行maven插件

生成html文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/848046
推荐阅读
相关标签
  

闽ICP备14008679号