本文主要讲GitHub里的screw(螺丝钉)生成数据库文档。
简介
在企业级开发中,我们经常会有编写数据库表结构文档的时间付出,一直以来,各公司关于数据库表结构文档的状态:要么没有、要么有,但都是手写,后期运维开发,需要手动进行维护到文档中,很是繁琐,如果忘记一次维护,就会给以后的工作造成很多困扰,无形中制造了很多坑留给自己和后人,于是就出现了screw。
特点
- 简洁、轻量、设计良好
- 多数据库支持
- 多种格式文档
- 灵活扩展
- 支持自定义模板
数据库支持
- MySQL
- MariaDB
- TIDB
- Oracle
- SqlServer
- PostgreSQL
- Cache DB(2016)
- H2 (开发中)
- DB2 (开发中)
- HSQL (开发中)
- SQLite(开发中)
- 瀚高(开发中)
- 达梦 (开发中)
- 虚谷 (开发中)
- 人大金仓(开发中)
文档生成支持
- html
- word
- markdwon
文档截图
使用
screw有两种使用方式,一种是配置方式,一种是代码方式。
1、新建SpringBoot Web项目
首先,我们新建一个SpringBoot Web项目,同时加入oracle和mysql的依赖:
2、配置依赖
引入screw核心包,HikariCP数据库连接池,HikariCP号称性能最出色的数据库连接池。
<!-- screw -->
<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>
<!--oracle-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
3、配置数据源
配置数据源,设置 useInformationSchema 可以获取tables注释信息。
#oracle
#spring.datasource.url=jdbc:oracle:thin:@ip:1521:ora11
#spring.datasource.username=root
#spring.datasource.password=123456
#spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
#spring.datasource.xa.properties.useInformationSchema=true
#mysql
spring.datasource.url=jdbc:mysql://ip:3306/gp-mybatis?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.xa.properties.useInformationSchema=true
4、使用方式
4.1 配置方式
pom文件中加入screw插件:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-maven-plugin</artifactId>
<!--这里选择最新版本-->
<version>1.0.3</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>