原创声明:本文为作者(幻好)原创,可用做学习参考转载,但需注明出处。禁止未经允许用于商业等途径,否则后果自负!

前言概述

随着开发场景的复杂度越来越高,存储数据的数据库表也越来越多并不断的更新。在开发团队之间有时需要协作开发业务,一般需要整理最新的数据库设计文档,而人工维护文档的时间成本可能会很高而且容易出错,一旦出错就会给后续埋下很多坑,后果不堪设想。如果能够通过工具随时生成最新的数据库文档,就能大大的节省工作效率。
为了解决上述工作的问题,本文将推荐一个国产数据库设计文档设计插件工具——SCREW。

SCREW

简介

screw (螺丝钉) 是一款开源简洁好用的数据库表结构文档生成工具,由国人开发,适合国人业务场景。

screw (螺丝钉)的名字含义摘自雷锋日记:虽然是细小的螺丝钉,是个细微的小齿轮,然而如果缺了它,那整个的机器就无法运转了,慢说是缺了它,即使是一枚小螺丝钉没拧紧,一个小齿轮略有破损,也要使机器的运转发生故障的。

项目开源地址:https://github.com/pingfangushi/screw

特点

screw具有以下特点:

  • 相比与powerdesigner 的重量级,screw 更加简洁、轻量且设计良好。
  • 支持多种数据库,目前支持市面常见的数据库:MySQL、Oracle、SqlServer、PostgreSQL等。
  • 支持多种格式文档,目前支持生成 word、html、markdown格式文档。
  • 支持灵活扩展,能够使用pojo生成功能直接根据数据库生成对应的java pojo对象。
  • 支持自定义模板,能够通过简单属性配置自定义模板样式。

使用SCREW生成文档

环境准备

  • 安装数据库:MySQL 5.7,并创建业务表
  • 搭建简单的 Maven 项目

操作步骤

数据库表
准备好需要生成数据库的表,除了 sys_config 其他都生成文档。

引入依赖组件

      <!--screw组件--><dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.2</version></dependency><!-- HikariCP --><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.4.5</version></dependency><!--mysql driver--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency>

编写代码

public class DataToDocument {@Testpublic void dataDocMaker() {// 配置数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/crawler?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8");hikariConfig.setUsername("root");hikariConfig.setPassword("root");// 获取表中字段的备注信息hikariConfig.addDataSourceProperty("useInformationSchema", "true");hikariConfig.setMinimumIdle(2);hikariConfig.setMaximumPoolSize(5);DataSource dataSource = new HikariDataSource(hikariConfig);// 配置需要忽略不生成文档的表ArrayList<String> ignoreTableName = new ArrayList<>();ignoreTableName.add("sys_config");// 配置需要忽略忽略含有以下前缀的表ArrayList<String> ignorePrefix = new ArrayList<>();ignorePrefix.add("sys_");// 配置需要忽略忽略含有以下后缀的表ArrayList<String> ignoreSuffix = new ArrayList<>();ignoreSuffix.add("_config");// 将忽略规则配置到流程中ProcessConfig processConfig = ProcessConfig.builder().ignoreTableName(ignoreTableName).ignoreTablePrefix(ignorePrefix).ignoreTableSuffix(ignoreSuffix).build();// 文档属性生成配置EngineConfig engineConfig = EngineConfig.builder()// 文档生成路径.fileOutputDir("src/main/resources/temp")// 文档生成后自动打开目录.openOutputDir(true)// 文件类型.fileType(EngineFileType.WORD)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 文档信息配置Configuration config = Configuration.builder()// 设置文档版本.version("1.0.0")// 设置描述.description("数据库设计文档说明")// 设置数据源.dataSource(dataSource).produceConfig(processConfig).engineConfig(engineConfig).build();// 最后执行生成new DocumentationExecute(config).execute();}
}

生成结果



文档生成成功后,会自动打开文档目录。

打开文档后,可以看到能够将数据库中每个字段及其相关属性完整的展示。

总结

如果工作中需要经常使用数据库设计文档,可以使用 screw 工具,提高工作效率,减少维护文档的时间成本。
总体体验 screw 非常便捷,上手也快,感兴趣的同学可以动手试试。

超好用的数据库设计文档生成工具相关推荐

  1. 数据库设计文档生成工具类

    在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,如果数据库表结构更新了还得手动更新维护到文档中,很是繁琐.GitHub 上发现了一个好工具 screw(螺丝钉),在此分享下 1.引入依赖 ...

  2. 【MySQL】数据库设计文档生成

    MySQL数据库设计文档生成 文章目录 MySQL数据库设计文档生成 前言 0.全局浏览 1.引入依赖 2.启动类 3.配置文件 4.实现类 5.成品展示 前言 记录MySQL数据库设计文档生成,旨在 ...

  3. SCADE Display(OpenGL)软件设计文档生成工具的设计考虑

    SCADE Display(OpenGL)软件设计文档生成工具的设计考虑 2018年6月 1 引言 本文档描述在SCADE Display软件设计文档生成工具(以下简称为SDYSDDGEN)的设计过程 ...

  4. mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM

    推荐文章 1.SQLite: SELECT 'AA' || 'BB' || 'CC'; 2.MySQL: SELECT CONCAT('AA', 'BB', ' 推荐文章 QT += sql QSql ...

  5. mysql自动生成数据库设计文档

    mysql生成数据库设计文档 引入jar包 <!-- screw核心 --> <dependency><groupId>cn.smallbun.screw</ ...

  6. 好用!一键生成数据库文档,这个开源的文档生成工具值得了解

    Gitee项目地址,可以直接去开源项目查看(推荐) https://gitee.com/leshalv/screw 简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家 ...

  7. postgre 生成数据库html文档_还在手动整理数据库文档?试试这个(螺丝钉)数据库文档生成工具...

    简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有.要么有.但都是手写.后期运维开发,需要手动进行维护到文档中,很是繁琐.如果 ...

  8. screw (螺丝钉) ~ 简洁好用的数据库表结构文档生成工具

    https://gitee.com/leshalv/screw 特点 简洁.轻量.设计良好 多数据库支持 多种格式文档 灵活扩展 支持自定义模板 数据库支持 MySQL MariaDB TIDB Or ...

  9. CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...

    上次发布的:CYQ.DBImport V1.0的相关介绍:CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 本次发布的V2.0 版本,准备突击海外,下面为相关的介绍. 一:新版本2 ...

最新文章

  1. Android 使用RxJava--基础篇
  2. 大咖来信 | 微软中国CTO韦青:低代码/无代码时代来了,写代码的你准备好了吗?...
  3. arrive get
  4. arch Linux 添加引导,ArchLinux 添加开机启动脚本, 亲测
  5. P6378 [PA2010] Riddle(2-sat/前后缀优化建图)
  6. php Hash Table(四) Hash Table添加和更新元素
  7. 中国移动游戏趋势洞察报告
  8. 贴出一个php的批量搜索吧
  9. 家族关系查询系统程序设计算法思路_七大查找算法(附C语言代码实现)
  10. 关于使用MYSQL出现的内存泄漏问题
  11. selenium定位不到元素的原因。
  12. 基于C++的模板引擎
  13. WS2811是三通道LED驱动控制专用电路彩灯带专用方案开发IC
  14. 手写图像反转,变换,imhist,均衡化,均值中值滤波,sobel以及拉普拉斯实现图像锐化
  15. 基于51单片机的交通灯控制设计
  16. 卷积神经网络(CNN)到底是个什么鬼东西(结构及作用)
  17. 双月数据生成及其常见算法(一)
  18. java看片_java – 如何正确查看片段
  19. Python http.server 服务器
  20. 前端切图案例课程一则-姜威-专题视频课程

热门文章

  1. vue3小兔鲜商城项目学习笔记+资料分享07
  2. Java - 简述一下你了解的设计模式。
  3. 厦门java工资水平2018_8290元!厦门最新平均工资出炉!看完想跳槽......
  4. Centos设置屏幕不休眠
  5. 002_chrono
  6. 2008网络盛典年度网络流行语候选:雷
  7. 腾讯云服务器标准型SA2详细情况
  8. 用php代码输出成绩的最高分,中学成绩分析-提取每科最高分学生名单
  9. 【论文导读】(AAAI)Achieving Counterfactual Fairness for Causal Bandit
  10. Vue2.(过滤器,Watch侦听器,计算属性,购物车案例)