关键词:
还在手动整理数据库文档?试试这个工具
简介
在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是需要一个插件工具 screw[1]来维护。
screw 特点
- 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具
- 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer
- 多种格式文档。支持 MD、HTML、WORD 格式
- 灵活扩展。支持用户自定义模板和展示样式
支持数据库类型
[✔️] MySQL
[✔️] MariaDB
[✔️] TIDB
[✔️] Oracle
[✔️] SqlServer
[✔️] PostgreSQL
[✔️] Cache DB
使用
这里以 mysql8 数据库为例子
<!--数据库文档核心依赖-->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</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>
- 通过自定义代码配置文档生成
@Test
public void shouldAnswerWithTrue()
//数据源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");
hikariConfig.setUsername("root");
hikariConfig.setPassword("root");
//设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
//生成配置
EngineConfig engineConfig = EngineConfig.builder()
//生成文件路径
.fileOutputDir("/Users/lengleng")
//打开目录
.openOutputDir(true)
//文件类型
.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()
//忽略表名
.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();
- 通过插件的形式生成文档
<build>
<plugins>
<plugin>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-maven-plugin</artifactId>
<version>1.0.2</version>
<dependencies>
<!-- 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>
</dependencies>
<configuration>
<!--username-->
<username>root</username>
<!--password-->
<password>root</password>
<!--driver-->
<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
<!--jdbc url-->
<jdbcUrl>jdbc:mysql://127.0.0.1:3306/test</jdbcUrl>
<!--生成文件类型-->
<fileType>HTML</fileType>
<!--文件输出目录-->
<fileOutputDir>/Users/lengleng</fileOutputDir>
<!--打开文件输出目录-->
<openOutputDir>false</openOutputDir>
<!--生成模板-->
<produceType>freemarker</produceType>
<!--描述-->
<description>数据库文档生成</description>
<!--版本-->
<version>$project.version</version>
<!--标题-->
<title>数据库文档</title>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[来源:https://juejin.im/post/5f1f5b57f265da22b855b1d0]
还在写curd?试试这款基于mybatis-plus的springboot代码生成器(代码片段)
...gboot代码生成器。使用这个生成器你可以在1分钟之内生成数据库表 查看详情
还在直接操作redis?赶快来试试它....(代码片段)
...ff0c;实用技术文章及时了解有些人还在直接用Jedis操作Redis数据库,但这种方式非常不方便,而且很不灵活。用SpringBoot整合Redis之后,既能非常方便地操作Redis数据库,SpringBoot又可以自由地在Lettuce或Jedis等技术之间... 查看详情
全网gis知识工具文档案例教程整理(代码片段)
全网GIS知识、工具、文档、案例、教程整理GIS麻辣香锅推荐阅读方式高精度地图BigMap、CesiumJS、GeoServer、GeoTools、GIS博文、GIS基础、GIS可视化、LeafleJS、Mapbox、MapWindow、Openlayers、QGIS、SuperMap、ThreeJS、WebGL开源博客系列学习资源或... 查看详情
整理全网优秀的api接口设计及相关优秀的接口管理在线文档生成工具(代码片段)
整理全网优秀的API接口设计及相关优秀的接口管理、在线文档生成工具一、优秀的接口设计1.1安全性问题1.1.1调用接口的先决条件-token1.1.2使用POST作为接口请求方式1.1.3客户端IP白名单1.1.4单个接口针对ip限流1.5记录接口请求日志1.... 查看详情
设计数据库er图太麻烦?不妨试试这两款工具,自动生成数据库er图!!!(代码片段)
...就写点轻松的,分享一个日常比较实用的功能『自动生成数据库ER图』自动生成ER图平常做技术方案设计的时候,如果有涉及到表结构的变更,就需要在文档中说明,还得将表结构信息写到文档中,类似如下:如果是一个新项目... 查看详情
window桌面自动整理文档工具(懒人必备)
...什么是Droplt?当您需要整理文件时,DropIt可以消除搜索和手动打开文件夹以及移动文件的繁琐工作。将一组不同的文件和文件夹拖放到浮动的DropIt映 查看详情
还在使用postman?一款集文档调试mock性能调试于一身的工具分享(代码片段)
💂个人主页:IT学习日记🤟版权:本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主💬如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦💅想寻找共同成长的小伙伴,请点击【技... 查看详情
还在纠结dapper或者efcore?不妨试试“混合orm”--repodb(代码片段)
...2个:Dapper,通过提供IDbConnection的扩展方法来查询数据库。它的优点在于可以轻松地执行参数化查询,将结果转化为对象;非常高效,在速度方面拥有micro-ORM之王的称号。EFCore,微软开源的ORM。它的优点在... 查看详情
还在手写数据库设计文档?java一键生成(代码片段)
...;文末获取源码联系🍅前言:以前我们还需要手写数据库设计文档、现在可以通过引入screw核心包来实现Java数据库文档一键生成。 查看详情
还在手写数据库设计文档?java一键生成(代码片段)
...;文末获取源码联系🍅前言:以前我们还需要手写数据库设计文档、现在可以通过引入screw核心包来实现Java数据库文档一键生成。 查看详情
java数据库表结构设计文档生成工具(screw)(代码片段)
...码示例使用方法前言 最近因为工作的需要,让我写数据库设计文档,可是我最烦文档类的工作了,之前写过一篇《mysql数据库设计文档-导出字段设计》的文章,使用的navicat工作,不过导出的格式是excel不符合... 查看详情
java数据库表结构设计文档生成工具(screw)(代码片段)
...码示例使用方法前言 最近因为工作的需要,让我写数据库设计文档,可是我最烦文档类的工作了,之前写过一篇《mysql数据库设计文档-导出字段设计》的文章,使用的navicat工作,不过导出的格式是excel不符合... 查看详情
还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!
目录docker介绍安装dockerUbuntu安装dockerCentOS安装docker通过脚本安装拉取java环境创建springboot项目打包springboot到dockerdocker查看容器的日志查看log4j2输出问文件日志docker介绍Docker是一个开源的应用容器引擎,让开发者可以打包他们的应... 查看详情
janusgraph文档整理(代码片段)
目录JanusGraph调研结论IntroBasicsConfiguration数据模型(Schema)GremlinJanusGraphServer服务部署ConfiguredGraphFactoryMulti-nodeIndexingTransaction事务缓存机制(JanusGraphCache)事务日志(TransactionLog)其他常见问题技术上的限制(TechnicalLimit 查看详情
读取excel还用poi?试试这款开源工具(代码片段)
写在前面Java后端程序员应该会遇到读取Excel信息到DB等相关需求,脑海中可能突然间想起ApachePOI这个技术解决方案,但是当Excel的数据量非常大的时候,你也许发现,POI是将整个Excel的内容全部读出来放入到内存中,所以内存消耗... 查看详情
别再用visio了!试试这个比它快10倍的画图工具不香吗?(代码片段)
总有童鞋问,这个流程图图怎么绘制的,这个UML类图用什么工具做的等等,今天给大家推荐一款idea插件PlantUml,来帮助大家快速快速完成绘制。掌握之后,效率是visio等其他工具的10倍,甩的他们尾灯都看... 查看详情
还在使用swagger吗,快来试试这款强大的在线api工具
将开源小分队设为星标 精品文章第一时间读大家好,我是可爱又机灵的开源小妹。今天给大家分享一个非常好用的在线文档工具:Knife4j背景现在分工越来越明确,做项目也都是前后端分离,这样就和前端沟通越... 查看详情
nifi源码整理(代码片段)
...少,只能一点点看源码,先把源码做一个大概的整理,之后再深入研究。nifi源码nifi-api:nifi的API接口nifi-bootstrap:NiFi的启动、命令处理与监听nifi-commons:工具包data- 查看详情