![数据库界的swagger,连接数据库直接生成数据库文档](http://img.jiangsulong.com/220721/1A6422E3-0.jpg)
文章插图
一、数据库支持
- MySQL
- MariaDB
- TIDB
- Oracle
- SqlServer
- PostgreSQL
- Cache DB
<!-- 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><!--mysql driver--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-JAVA</artifactId><version>8.0.20</version></dependency>
2、配置数据源配置数据源,设置 useInformationSchema 可以获取tables注释信息 。spring.datasource.url=jdbc:mysql://192.168.1.5:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=falsespring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.xa.properties.useInformationSchema=true
3、screw 核心配置screw有两种执行方式,第一种是pom文件配置,另一种是代码执行 。<build><plugins><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></dependency></dependencies><configuration><!--username--><username>root</username><!--password--><password>123456</password><!--driver--><driverClassName>com.mysql.cj.jdbc.Driver</driverClassName><!--jdbc url--><jdbcUrl>jdbc:mysql://192.168.1.5:3306/test</jdbcUrl><!--生成文件类型--><fileType>html</fileType><!--打开文件输出目录--><openOutputDir>false</openOutputDir><!--生成模板--><produceType>freemarker</produceType><!--文档名称 为空时:将采用[数据库名称-描述-版本号]作为文档名称--><!--<docName>测试文档名称</docName>--><!--描述--><description>数据库文档生成</description><!--版本--><version>${project.version}</version><!--标题--><title>fire数据库文档</title></configuration><executions><execution><phase>compile</phase><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>
配置完以后,在 maven project->screw 双击执行ok 。![数据库界的swagger,连接数据库直接生成数据库文档](http://img.jiangsulong.com/220721/1A6422M8-1.jpg)
文章插图
pom执行方式
代码生成方式
import cn.smallbun.screw.core.Configuration;import cn.smallbun.screw.core.engine.EngineConfig;import cn.smallbun.screw.core.engine.EngineFileType;import cn.smallbun.screw.core.engine.Eng.NETemplateType;import cn.smallbun.screw.core.execute.DocumentationExecute;import cn.smallbun.screw.core.process.ProcessConfig;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.context.ApplicationContext;import javax.sql.DataSource;import java.util.ArrayList;import java.util.Arrays;import java.util.List;@SpringBootTestclass ScrewApplicationTests {@AutowiredApplicationContext applicationContext;@Testvoid contextLoads() {DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);// 生成文件配置EngineConfig engineConfig = EngineConfig.builder()// 生成文件路径,自己mac本地的地址,这里需要自己更换下路径.fileOutputDir("/Users/mac/Desktop")// 打开目录.openOutputDir(false)// 文件类型.fileType(EngineFileType.HTML)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 生成文档配置(包含以下自定义版本号、描述等配置连接)Configuration config = Configuration.builder().version("1.0.3").description("生成文档信息描述").dataSource(dataSourceMysql).engineConfig(engineConfig).produceConfig(getProcessConfig()).build();// 执行生成new DocumentationExecute(config).execute();}/*** 配置想要生成的表+ 配置想要忽略的表* @return 生成表配置*/public static ProcessConfig getProcessConfig(){// 忽略表名List<String> ignoreTableName = Arrays.asList("aa","test_group");// 忽略表前缀,如忽略a开头的数据库表List<String> ignorePrefix = Arrays.asList("a","t");// 忽略表后缀List<String> ignoreSuffix = Arrays.asList("_test","czb_");return ProcessConfig.builder()//根据名称指定表生成.designatedTableName(new ArrayList<>())//根据表前缀生成.designatedTablePrefix(new ArrayList<>())//根据表后缀生成.designatedTableSuffix(new ArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AutoPWN-Suite:一款功能强大的自动化漏洞扫描和利用工具
- 数据库读写分离详解
- 该死的单元测试,写起来到底有多痛?
- 很皮的沙雕宿群名 好听又很沙雕的群名
- 写给最好朋友的一封信范文 写给朋友的一封信
- feel like的用法 关于feel like的用法及解释
- 雅迪、小刀推出的高续航电动车,续航超100公里,还支持快充
- 适合化妆小白的万能淡妆公式,普通女孩也能快速变美
- 女生必学的化妆底层逻辑 | 普通女孩也能快速变美
- 新手如何判断车头到墙的距离?记住一个小技巧,任何车型都适用