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

简介

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是萌生了要自己写一个插件工具的想法,但由于自己前期在程序设计上没有很多造诣,且能力偏低,有想法并不能很好实现,随着工作阅历的增加,和知识的不断储备,终于在2020年的3月中旬开始进行编写,4月上旬完成初版,想完善差不多在开源,但由于工作太忙,业余时间不足,没有在进行完善,到了6月份由于工作原因、频繁设计和更改数据库、经常使用自己写的此插件、节省了很多时间,解决了很多问题 ,在仅有且不多的业余时间中、进行开源准备,于2020年6月22日,开源,欢迎大家使用、建议、并贡献。
  关于名字,想一个太难了,好在我这个聪明的小脑瓜灵感一现,怎么突出它的小,但重要呢?从小就学过雷锋的螺丝钉精神,摘自雷锋日记:虽然是细小的螺丝钉,是个细微的小齿轮,然而如果缺了它,那整个的机器就无法运转了,慢说是缺了它,即使是一枚小螺丝钉没拧紧,一个小齿轮略有破损,也要使机器的运转发生故障的...,感觉自己写的这个工具,很有这意味,虽然很小、但是开发中缺了它还不行,于是便起名为screw(螺丝钉)

screw 特点

  • 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具
  • 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer
  • 多种格式文档。支持 MD、HTML、WORD 格式
  • 灵活扩展。支持用户自定义模板和展示样式

支持数据库类型

[✔️] MySQL

[✔️] MariaDB

[✔️] TIDB

[✔️] Oracle

[✔️] SqlServer

[✔️] PostgreSQL

[✔️] Cache DB

文档截图

c18be71f2dca5d24f9c735dd9066352f.png
e066250c9df4d19897e2856e9b3c7927.png
719c03a83b94dd652788fc42b5974c70.png

使用方式

普通方式

  • 引入依赖
cn.smallbun.screw    screw-core    ${lastVersion}
  • 编写代码
/** * 文档生成 */void documentGeneration() {   //数据源   HikariConfig hikariConfig = new HikariConfig();   hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");   hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");   hikariConfig.setUsername("root");   hikariConfig.setPassword("password");   //设置可以获取tables remarks信息   hikariConfig.addDataSourceProperty("useInformationSchema", "true");   hikariConfig.setMinimumIdle(2);   hikariConfig.setMaximumPoolSize(5);   DataSource dataSource = new HikariDataSource(hikariConfig);   //生成配置   EngineConfig engineConfig = EngineConfig.builder()         //生成文件路径         .fileOutputDir(fileOutputDir)         //打开目录         .openOutputDir(true)         //文件类型         .fileType(EngineFileType.HTML)         //生成模板实现         .produceType(EngineTemplateType.freemarker)         //自定义文件名称         .fileName("自定义文件名称").build();   //忽略表   ArrayList ignoreTableName = new ArrayList<>();   ignoreTableName.add("test_user");   ignoreTableName.add("test_group");   //忽略表前缀   ArrayList ignorePrefix = new ArrayList<>();   ignorePrefix.add("test_");   //忽略表后缀       ArrayList 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();}

Maven 插件

cn.smallbun.screw            screw-maven-plugin            ${lastVersion}com.zaxxer                    HikariCP                    3.4.5mysql                    mysql-connector-java                    8.0.20rootpasswordcom.mysql.cj.jdbc.Driverjdbc:mysql://127.0.0.1:3306/xxxxHTMLfalsefreemarker测试文档名称                                数据库文档生成${project.version}数据库文档compilerun

学习交流私信【源码】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenFaaS - 以自己的方式运行容器化函数

作者 | Addo Zhang来源 | 云原生指北译者注&#xff1a; 本文篇幅较长&#xff0c;有助于了解 FaaS 和 OpenFaaS。作者分别从开发人员和运维人员的视角来了解 OpenFaaS&#xff0c;对了解新的技术是个很好的方式。本文翻译自 Ivan Velichko[1] 的 OpenFaaS - Run Containerized…

技术人生第5篇——浅谈如何成为技术一号位?

简介&#xff1a; 认清每个人自己在日常工作中的思维定式非常重要&#xff0c;有助于转变自己对很多事情的认知&#xff0c;而这种转变也会从根本上带来行为上的变化。也就是说&#xff0c;可以通过理论分析和实践&#xff0c;来共同完成对个人实际生活的影响。今天这篇文章&am…

元宇宙真的是「割韭菜」吗?

作者 | 小枣君来源 | 鲜枣课堂我们究竟该如何看待元宇宙&#xff1f;元宇宙为什么会火&#xff1f;它到底有没有价值&#xff1f;它真的是“割韭菜”吗&#xff1f;今天这篇文章&#xff0c;小枣君想说说自己的看法。█ 元宇宙为什么会火&#xff1f;元宇宙的蹿红速度&#xff…

阿里仿真灰度变更测试简介

简介&#xff1a; 基础网络产品的生命周期大致包含研发、架构、交付、优化和运营等几个环节&#xff0c;每一个环节的质量保证都涉及重要的一环&#xff0c;即预期验证测试。本文将重点讲解一下如何在仿真测试平台进行灰度变更测试&#xff0c;从而保证变更的稳定性。 作者 | 聪…

树莓派开始玩转linux pdf_用树莓派构建 Kubernetes 集群 | Linux 中国

将 Kubernetes 安装在多个树莓派上&#xff0c;实现自己的“家庭私有云”容器服务。• 来源&#xff1a;linux.cn • 作者&#xff1a;Chris Collins • 译者&#xff1a;Xingyu.Wang •(本文字数&#xff1a;14330&#xff0c;阅读时长大约&#xff1a;18 分钟)将 Kubernetes …

非标准化的阀门企业也在用钉钉宜搭实现数字化转型

简介&#xff1a; 增长对于所有企业来说&#xff0c;都是机遇与挑战并存。对非标准化的制造企业来说&#xff0c;增长是一把双刃剑&#xff0c;它既是订单增长带来的销售提升&#xff0c;同时在另一边则往往是“低效与浪费”的困扰。 困扰非标制造业的两大难题 1、增长期的“…

慢SQL治理分享

简介&#xff1a; 这里的慢SQL指的是MySQL慢查询&#xff0c;是运行时间超过long_query_time值的SQL。真实的慢SQL通常会伴随着大量的行扫描、临时文件排序或者频繁的磁盘flush&#xff0c;直接影响就是磁盘IO升高&#xff0c;让正常的SQL变成了慢SQL&#xff0c;大面积执行超时…

英特尔表示:元宇宙的路还很长

编译 | 禾木木出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;现在每个人都在谈论元宇宙&#xff0c;各大公司也都在致力于访问它的硬件&#xff0c;而且它似乎最终可能成为万维网规模的下一个主要通信平台。但如果你问的话&#xff0c;「最终」还是有很长的…

java csv 追加_如何在Java中添加一个包含CSV数据的列

基于plirke示例代码和他的帮助,我编写了一个最终的工作代码。在这里分享它,这样它可能对有类似需求的人有用。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOExcep…

案例|自建or现成工具?小型创业团队敏捷研发探索

简介&#xff1a; 实践和踩坑建议。 我是刘永良&#xff0c;是一名全栈开发者也是一名创业者&#xff0c;来自济南——一个目前被称为互联网洼地的地方。2020年4月和三位志同道合的朋友&#xff0c;在济南共同创建了山东旷野网络科技有限公司&#xff0c;主要从事自有项目和外包…

代码智能技术如何应用到日常开发?

简介&#xff1a; 原理与演示。 01/ 从开发者的烦恼说起 开发者在编写代码时&#xff0c;需要花费大量时间在低层次的重复编码上&#xff0c;特别是针对一些语法比较冗余的开发语言。 同时&#xff0c;开发者经常被戏称为面向搜索引擎编程&#xff0c;因为我们经常需要通过…

sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...

原文链接&#xff1a;https://www.cnblogs.com/qdhxhz/p/8470997.htmlTCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)一、TCP三次握手第一次握手客户端向服务器发出连接请求报文&#xff0c;这时报文首部中的同部位SYN1&#xff0c;同时随机生…

F5:2022年应用交付和安全领域趋势展望

作者 | F5中国区金融事业部技术总监兼安全事业部副总经理 陈亮 出品 | CSDN 云计算 随着人工智能&#xff08;AI)、物联网 (IoT)等技术的日益普及&#xff0c;企业拥抱互联网技术的程度不断提高&#xff0c;越来越多的企业开始考虑利用数字化来提升劳动生产率和利用电子商务扩…

java的class文件在哪里_传统上,你在哪里存储Java .class文件?

如果你不熟悉它,你应该研究Java classpath的主题.我记得当我第一次开始用Java编程时发现这个令人困惑.Java中有.class文件的定义搜索路径;当你运行设置类路径的java -cp blahblahblah时. java -jar blahblahblah.jar打开一个JAR file,.jar文件的清单可以指示类路径.默认的类路径…

DevOps 能力提升模型

简介&#xff1a; DevOps 能力反映的是技术研发响应业务变化的能力。随着组织规模的增加和业务复杂性增长&#xff0c;DevOps 能力会变得越来越重要。持续提升 DevOps 的能力成为技术研发的共同挑战。 编者按&#xff1a;本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南…

生态和场景一站式集成?来看看小程序的“共享主义”

简介&#xff1a; mPaaS 小程序市场正式上线&#xff0c;海量小程序一站式集成&#xff0c;用场景拉高终端活跃水位。 01 小程序破壁计划 从 2018 年「支付宝」将支付宝小程序全量开放给用户使用开始&#xff0c;整个小程序生态市场发生了新一波的震荡。 小程序商家通过「支付…

python sanic orm_基于sanic的微服务框架 - 架构分析

感谢songcser分享的《基于sanic的微服务基础架构》https://github.com/songcser/sanic-ms最近正在学习微服务&#xff0c;发现这个repo不错&#xff0c;但不完整&#xff0c;跑不起来。所以学习了一下源码&#xff0c;实际使用Docker部署成功&#xff0c;本文记录实现过程。学习…

拒做背锅侠!如何利用网站性能优化驱动产品体验提升

简介&#xff1a; 对于运维工程师而言&#xff0c;如果要票选五大最抓狂运维支撑场景&#xff0c;花样繁多的各种促销活动一定榜上有名。每个促销季上线都是忐忑不安的不眠夜。大量内容更新、大量客户涌入&#xff0c;大量数据读写&#xff0c;虽有着各种技术方案或工具服务保障…

阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

简介&#xff1a; 近日&#xff0c;计算机系统结构国际顶级学术会议 USENIX ATC在线上举行。ATC 始办于1992年&#xff0c;是由USENIX组织的计算机系统领域的顶级会议&#xff0c;至今已成功举办31届&#xff0c;计算机系统领域中Oak语言&#xff08;JAVA语言的前身&#xff09…

Quorum 和唱票那回事

作者 | 奇伢来源 | 奇伢云存储关于 Quorum 的两个维度前几回说了那么多框架&#xff0c;设计思想的文章。今天分享一个很小的点&#xff0c;etcd 的 quorum 是怎么实现的&#xff1f;Quorum 机制本质就是一个关于多数派的事情&#xff0c;这个多数派应用的有两个方面&#xff1…