数据库表结构文档工具 screw
程序员文章站
2022-03-01 19:47:21
...
前言
工作中难免需要使用到数据库文档,之前一直使用的E-R设计工具,但是文档化不够智能,不符合国人阅读的习惯,所以找啊找,在码云找到了screw。试用了一下,感觉挺不错的,给大家分享一下。
一、screw是什么?
直接抄作业,哈哈,官方的gitee仓库摘要说明很清晰的说明了工具的用途。
简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。
gitee 开源仓库地址
https://gitee.com/leshalv/screw
二、使用步骤
使用方式有两种,一种是侵入式的、一种是插件式的
侵入式配置
依赖管理
最新的maven依赖包版本,请移步到下方地址查询
http://search.maven.org
maven 依赖
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>${lastVersion}</version>
</dependency>
gradle依赖
implementation("cn.smallbun.screw:screw-core:${lastVersion}")
Java代码生成配置
public class GeneralDoc(){
public static void main(String[] args){
new GeneralDoc().documentGeneration();
}
/**
* 文档生成
*/
private 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<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();
}
}
插件式配置
maven 插件式
感觉代码生成的侵入性太强,就可以使用maven插件式的。暂时只有maven项目可以使用该插件,gradle 的项目就不要想了,没有这个插件T_T
<build>
<plugins>
<plugin>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-maven-plugin</artifactId>
<version>${lastVersion}</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>password</password>
<!--driver-->
<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
<!--jdbc url-->
<jdbcUrl>jdbc:mysql://127.0.0.1:3306/xxxx</jdbcUrl>
<!--生成文件类型-->
<fileType>HTML</fileType>
<!--打开文件输出目录-->
<openOutputDir>false</openOutputDir>
<!--生成模板-->
<produceType>freemarker</produceType>
<!--文档名称 为空时:将采用[数据库名称-描述-版本号]作为文档名称-->
<fileName>测试文档名称</fileName>
<!--描述-->
<description>数据库文档生成</description>
<!--版本-->
<version>${project.version}</version>
<!--标题-->
<title>数据库文档</title>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
总结
总体上,这个工具还是比较好用的,生成完成后基本上只需要简单的一些修改就可以完成数据库文档。
上一篇: vue前后端分离导出excel
下一篇: inline内联函数的使用
推荐阅读
-
sql脚本查询数据库表,数据,结构,约束等操作的方法
-
修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库
-
Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库
-
Mybatis总结之如何自动生成数据库表结构
-
Python使用win32com模块实现数据库表结构自动生成word表格的方法
-
oracle数据库自动生成数据库表结构文档(亲测有效)
-
根据sql脚本修改数据库表结构的几种解决方案
-
pt-online-schema-change工具使用教程(在线修改大表结构)
-
Sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构
-
数据库表结构文档查看器 基于netcore