程序员必备推荐一款与Swagger媲美的数据库文档生成工具

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 程序员必备推荐一款与Swagger媲美的数据库文档生成工具

# 简介

 

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集成,配置即可,轻松生成数据库表结构文档。

 

# 特点

 

  • 简洁、轻量、设计良好
  • 多数据库支持
  • 多种格式文档
  • 灵活扩展
  • 支持自定义模板

 

# 数据库支持

 

  • MySQL
  • MariaDB
  • TIDB
  • Oracle
  • SqlServer
  • PostgreSQL
  • Cache DB

 

# 文档生成支持

 

  • html
  • word
  • markdwon

 

# 文档截图

 

# 手动运行screw

 

引入依赖

 

<dependency>    <groupId>cn.smallbun.screw</groupId>    <artifactId>screw-core</artifactId>    <version>${lastVersion}</version> </dependency>

 

编写代码

 

/** * 文档生成 */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插件运行screw

 

<build>    <plugins>        <plugin>            <groupId>cn.smallbun.screw</groupId>            <artifactId>screw-maven-plugin</artifactId>            <version>${lastVersion}</version>            <dependencies>                <dependency>                    <groupId>com.zaxxer</groupId>                    <artifactId>HikariCP</artifactId>                    <version>3.4.5</version>                </dependency>                <dependency>                    <groupId>mysql</groupId>                    <artifactId>mysql-connector-java</artifactId>                    <version>8.0.20</version>                </dependency>            </dependencies>            <configuration>                <username>root</username>                <password>password</password>                <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>                <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>
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
56 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
SQL 数据可视化 关系型数据库
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
99 1
|
2月前
|
前端开发 应用服务中间件 API
|
29天前
|
Rust 关系型数据库 Linux
Rainfrog: 轻量级数据库管理工具
【10月更文挑战第3天】
|
1月前
|
安全 Java API
SpringSecurity结合knife4j实现swagger文档
通过将Spring Security与Knife4j相结合,我们不仅能够为RESTful API提供强大的安全防护,还能保证API文档的易用性和可访问性,这对于API的设计、开发和维护来说至关重要。这种集成方式不仅提升了开发效率,也优化了API使用者的体验,是现代API驱动开发中不可或缺的一环。
71 0
|
3月前
|
SQL 数据处理 数据库
|
3月前
|
SQL 存储 监控
|
3月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
88 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
22 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1