达永编程网

程序员技术分享与交流平台

Spring Boot 整合 Screw生成相关的数据库设计文档?

Screw是一个开源的数据库文档生成工具,它看了可以帮助开发者自动的生成数据库相关的设计文档,能够从数据库中提取到表结构、字段信息、索引信息、主外键信息等。然后在生成的数据库文档中包含这些信息。它支持生成多种格式的文档, HTML、Markdown 或 Word 文档等。

Screw 的主要功能

  1. 自动化文档生成:开发者无需手动的去编写数据库文档,Screw可以自动的从数据库提取到相关的数据库表信息并自动生成完整的数据库设计文档。
  2. 多种输出格式:在Screw中支持了多种数据格式的文档生成,例如常见HTML、Markdown 和 Word 格式等,同样也方便了开发者在不同的开发环境中查看和分享相关的数据库设计信息。
  3. 高可配置性:在实际使用过程中,我们可以通过配置文件和配置类的形式来控制文档生成的格式以及文档的细节,包括可以设置如何生成文档、生成什么样的文档、那些表结构需要生成文档等等内容。
  4. 支持多种数据库:Screw支持了包括 MySQL、PostgreSQL、Oracle、SQL Server 等多种主流数据库。

Screw 的应用场景

  • 项目文档化:在项目中如果需要数据库的设计文档,来帮助团队成员去了解项目数据库结构的情况下,可以通过Screw来生成数据库的设计文档,方便团队开发人员在实际开发过程中使用。
  • 架构审查:在项目中需要对架构进行审查的时候,可以使用文档生成器来生成相对应的数据库的设计文档,这样可以方便团队在进行架构审查的时候进行讨论,并提出优化的意见。
  • 数据库变更管理:Screw还支持了在数据库结构发生变化的时候,可以比较新旧文档的差异性,通过这种方式来保证数据的设计的一致性和完整性。

具体实现

引入依赖

首先需要再POM文件中添加Screw的相关的依赖,如下所示


    cn.smallbun.screw
    screw-core
    1.0.5

配置数据源

接下来就是在配置文件中配置数据库链接相关的内容,这里需要注意将数据库换成你对应的数据库链接信息,如下所示。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

编写生成文档的代码

配置完成之后,接下来要做的事情就是创建文档生成类,如下所示。

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;
import java.util.Arrays;
import java.util.List;

public class DatabaseDocGenerator {

    public static void main(String[] args) {
        // 配置数据源
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
        hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/your_database");
        hikariConfig.setUsername("your_username");
        hikariConfig.setPassword("your_password");
        DataSource dataSource = new HikariDataSource(hikariConfig);

        // 配置文件生成路径
        EngineConfig engineConfig = EngineConfig.builder()
                .fileOutputDir("D:/database-doc")  // 输出路径
                .openOutputDir(true)
                .fileType(EngineFileType.HTML)  // 可以选择HTML、WORD、MD
                .produceType(EngineTemplateType.freemarker).build();

        // 忽略表
        List ignoreTableName = Arrays.asList("test_user", "test_group");
        List ignorePrefix = Arrays.asList("test_");
        List ignoreSuffix = Arrays.asList("_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();
    }
}

接下来我们就可以运行项目并且会在代码中指定的路径下输出相应的文档,当程序执行完毕之后,我们就可以在路径下找到对应的数据库设计文档。

总结

通过上面的步骤,我们就可以可以通过Spring Boot项目来整合Screw来实现数据库设计文档的自动生成。通过自动生成数据库设计文档的方式,可以更加方便高效的分享和查看数据库的结构信息。帮助提升开发效率。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言