JAVA 数据库表结构设计文档生成工具(screw )

2023-11-23 13:30

本文主要是介绍JAVA 数据库表结构设计文档生成工具(screw ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

前言

一、screw 是什么?

二、使用步骤

1.引入库

2.代码示例

使用方法


前言

 最近因为工作的需要,让我写数据库设计文档,可是我最烦文档类的工作了,之前写过一篇

《mysql数据库设计文档-导出字段设计》的文章,使用的navicat工作,不过导出的格式是excel不符合格式,还得自己整理,现在用screw 工具包,整合到springboot的项目中便可以自动生成数据库设计文档,非常方便,下面就分享一下教程


提示:以下是本篇文章正文内容,下面案例可供参考

一、screw 是什么?

    screw是一个一键式生成数据库文档的开源工具包,目前screw可以生成word、md和html格式类的文档,支持freemarker和velocity两种模板引擎。数据源支持HikariDataSource,DruidDataSource可能会发生类型转换报错。

二、screw 特点

  • 支持多种数据库:cn.smallbun.screw支持主流的关系型数据库,如MySQL、Oracle、SQL Server、PostgreSQL等。
  • 自动生成文档:通过读取数据库的元数据信息(表结构、列属性、索引等),自动生成完整的数据库文档。
  • 多种输出格式:cn.smallbun.screw支持多种文档格式,包括HTML、Markdown、Word、Excel等,以满足不同的需求和使用场景。
  • 高度可定制:提供丰富的配置选项,允许用户根据需要自定义文档的样式、布局和内容。
  • 命令行和代码两种方式:可以通过命令行工具或者在Java代码中集成使用,灵活方便。
     

三、使用步骤

1.引入库

pom文件中引入jar依赖

<!--  数据库设计文档生成工具-->
<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version>
</dependency>

2.通过命令行工具使用: 

  • 下载cn.smallbun.screw的JAR文件,并将其添加到项目中。
  • 在命令行中执行以下命令:java -jar screw.jar -url jdbc:mysql://localhost:3306/database -driver com.mysql.jdbc.Driver -username root -password 123456 -type html -outDri doc
  • 上述命令使用MySQL数据库作为示例,根据实际情况修改数据库连接相关参数。通过-type指定输出文档的格式,通过-outDri指定输出路径。

3.通过Java代码使用:

代码如下(下面用的是postgres数据库):


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.List;public class DatabaseDesignDocUtil {public static void main(String[] args) {documentGeneration();}/*** 文档生成*/public static void documentGeneration() {//数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("org.postgresql.Driver");hikariConfig.setJdbcUrl("jdbc:postgresql://39.164.52.80:5432/work_face");hikariConfig.setUsername("postgres");hikariConfig.setPassword("POSTGRES");//设置可以获取tables remarks信息hikariConfig.addDataSourceProperty("useInformationSchema", "true");hikariConfig.setMinimumIdle(2);hikariConfig.setMaximumPoolSize(5);DataSource dataSource = new HikariDataSource(hikariConfig);//生成配置EngineConfig engineConfig = EngineConfig.builder()//生成文件路径.fileOutputDir("C:\\Users\\tarzan\\Desktop\\doc")//打开目录.openOutputDir(true)//文件类型.fileType(EngineFileType.WORD)//生成模板实现.produceType(EngineTemplateType.freemarker)//自定义文件名称.fileName("智能工作面数据库设计文档").build();//忽略表List<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();}}

在上述示例中,我们创建了一个Configuration对象,配置了数据库连接信息和文档输出选项。然后,通过DocumentationExecute执行文档生成操作。需要改成mysql等别的数据库的,请在代码中改下驱动配置和连接配置。


使用方法

 idea等编辑器里,运行main的主方法即可。

控制台输出示例

生成文档展示

补充知识

cn.smallbun.screw 是一个开源的数据库文档生成工具,用于将数据库结构以文档形式展示。下面将详细介绍 cn.smallbun.screw 的特点、使用方式以及其在实际项目中的应用。

一、cn.smallbun.screw 的特点:

  1. 支持多种数据库:cn.smallbun.screw 支持主流的关系型数据库,如 MySQL、Oracle、SQL Server、PostgreSQL 等,可以适用于不同的数据库平台。

  2. 自动生成文档:该工具可以自动解析数据库的结构,包括表、字段、索引、约束等信息,并生成相应的文档。这样,开发人员无需手动编写和更新数据库文档,节省了大量的时间和精力。

  3. 自定义模板:cn.smallbun.screw 提供了丰富的文档模板,用户可以根据需要选择合适的模板进行定制。模板支持多种输出格式,如 HTML、Markdown、Word 等,使得生成的文档更加灵活和美观。

  4. 数据库版本控制:cn.smallbun.screw 支持与版本控制系统(如 Git)集成,可以记录数据库结构的变化历史。这对于团队协作和项目追踪非常有用,能够方便地查看和比较不同版本数据库结构的差异。

  5. 命令行和 Maven 插件:cn.smallbun.screw 提供了命令行工具和 Maven 插件,方便集成到项目中,并可以通过简单的命令或配置实现文档生成。

二、cn.smallbun.screw 的使用方式:

  1. 引入依赖:首先需要将 cn.smallbun.screw 的依赖添加到项目中。可以通过 Maven 或手动下载 jar 包的方式引入。

  2. 配置数据库:在项目的配置文件中,配置要连接的数据库信息,包括驱动类、URL、用户名和密码等。

  3. 配置文档生成:根据需要,配置文档输出的格式、路径、模板等相关参数。可以选择使用默认模板,也可以自定义模板。

  4. 运行工具:通过命令行工具或 Maven 插件运行 cn.smallbun.screw,触发文档生成过程。工具会连接数据库,解析结构并生成相应的文档。

  5. 查看文档:生成文档后,可以查看生成的文档文件,并根据需要进行调整或分享给相关人员。

三、cn.smallbun.screw 的应用场景:

  1. 项目文档:cn.smallbun.screw 可以作为项目文档的一部分,记录数据库结构和设计的细节,方便团队成员了解数据库的组成和关系。

  2. 数据库维护:生成的文档可以作为数据库维护的参考,开发人员和 DBA 可以根据文档了解表结构、列定义、索引等信息,方便进行数据库优化和修改。

  3. 数据库迁移:当进行数据库迁移或升级时,cn.smallbun.screw 可以帮助记录当前数据库结构,并与迁移后的数据库结构进行对比,以确保数据一致性和完整性。

  4. 文档共享:生成的文档可以方便地与团队成员、客户或其他相关方共享,使得数据库设计和结构更加透明和可理解。

总结: cn.smallbun.screw 是一个功能强大的数据库文档生成工具,支持多种数据库平台,并能自动生成详细的数据库文档。它简化了数据库文档的维护和生成过程,提高了团队的工作效率和沟通效果。通过 cn.smallbun.screw,开发者可以快速生成规范、易读的数据库文档,并在项目开发和维护中发挥重要作用。

这篇关于JAVA 数据库表结构设计文档生成工具(screw )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/418283

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语