一、解决什么问题

数据库文档是咱们在企业我的项目开发中须要交付的文档,通常须要开发人员去手工编写。编写实现后,数据库产生变更又须要手动的进行批改,从而节约了大量的人力。并且这种文档并没有什么技术含量,被安顿做这个工作的程序员往往本人心里会有抵触情绪,乐观的预期本人在团队的地位,造成到职也是可能的。如上面的这种文档的内容:

笔者最近在github下面发现一个数据库文档生成工具:screw(螺丝钉)。该工具可能通过简略地配置,疾速的依据数据库表构造进行逆向工程,将数据库表构造及字段逆向生成为文档。

二、特点

  • 简洁、轻量、设计良好
  • 多数据库反对:MySQL、MariaDB、TIDB、Oracle、 SqlServer、PostgreSQL、Cache DB
  • 多种格局文档: html、word、 markdwon
  • 灵便扩大:反对用户自定义模板和展现款式批改(freemarker模板)

三、依赖库探索

mvn地方仓库查看最新版本,将如下的maven坐标引入到Spring Boot我的项目中去:

<dependency>    <groupId>cn.smallbun.screw</groupId>    <artifactId>screw-core</artifactId>    <version>1.0.3</version></dependency>

从maven仓库的编译依赖中能够看到,screw-core其实现依赖了如下的内容。重点关注freemarker,因为该我的项目是应用freemarker作为模板生成文档。

除此之外,screw应用了HikariCP作为数据库连接池,所以:

  • 你的Spring Boot我的项目须要引入HikariCP数据库连接池。
  • 依据你的数据库类型及版本,引入正确的JDBC驱动

四、开始造作吧

以上的工作都做好之后,咱们就能够来配置文档生成参数了。实现文档生成有两种形式,一种是写代码,一种是应用maven 插件。

  • 我集体还是比拟喜爱应用代码的过后,写一个单元测试用例就能够了,绝对独立,应用形式也灵便。
  • 如果放在pom.xml的插件配置外面,让本就很简短的pom.xml变的更加的简短,不喜爱。

所以maven插件的这种形式我就不给大家演示了,间接把上面的代码Ctrl + C/V到你的src/test/java目录下。简略的批改配置,运行就能够了

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 org.junit.jupiter.api.Test;import javax.sql.DataSource;import java.util.ArrayList;public class ScrewTest {    @Test  void testScrew()  {    //数据源    HikariConfig hikariConfig = new HikariConfig();    hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");    hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");    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("d://")            //关上目录            .openOutputDir(true)            //生成文件类型:HTML            .fileType(EngineFileType.HTML)            //生成模板实现            .produceType(EngineTemplateType.freemarker)            .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();  }}

在测试用例外面运行下面的代码,就会主动生成数据库文档到fileOutputDir配置目录下。

五、成果


欢送关注我的博客,外面有很多精品合集

  • 本文转载注明出处(必须带连贯,不能只转文字):字母哥博客。

感觉对您有帮忙的话,帮我点赞、分享!您的反对是我不竭的创作能源! 。另外,笔者最近一段时间输入了如下的精品内容,期待您的关注。

  • 《手摸手教你学Spring Boot2.0》
  • 《Spring Security-JWT-OAuth2一本通》
  • 《实战前后端拆散RBAC权限管理系统》
  • 《实战SpringCloud微服务从青铜到王者》
  • 《VUE深入浅出系列》