screw快速生成数据库文档\html
在开发中,我们经常使用数据库文档来翻阅资料等,且在前期开发阶段数据库变更结构和数据是一件很常见的事情,那么就没有过多的时间去维护数据库结构文档,可能文档就没有那么及时更新出最新的文档,给大家推荐一下一个超级方便简单的工具,screw。
可使用生成的数据库文档有很多、在这里举例 MySQL
一、引入依赖
<!-- MySQL 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- springboot-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 自动生成数据库文档-->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>
<!-- JDBC数据源使用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
以上依赖中JDBC不可缺少否则可能都会到无法加载到数据源,感兴趣可以试试druid数据源。
为了演示直接采用接口请求完成,详细步骤可根据自己的业务才进行细化。
二、接口请求
package com.zkr.screwlend.controller;
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.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author hebiyusheng
* @date 2022/2/17 - 11:20
* @Motto "何必余生、及时行乐、Good luck mi"
* @data
* @entity
* @Excprite
*/
@RestController
public class ScrewController {
/**
* 生成文件地址
*/
private static final String fileName = "填写自己电脑需要存放生成文档的物理地址";
/**
* 数据源注入
*/
@Autowired
DataSource dataSource;
@RequestMapping("/executeDOC")
public String executeDOC() {
// 1、生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
//生成文件路径(本地路径)
.fileOutputDir(fileName)
//打开目录
.openOutputDir(false)
//文件类型( ".html"、".doc"、".md")
.fileType(EngineFileType.HTML)
//生成模板实现
.produceType(EngineTemplateType.freemarker).build();
// 忽略表名
List<String> ignoreTableName = Arrays.asList("aa", "test_group");
// 忽略表前缀
List<String> ignorePrefix = Collections.singletonList("czb_");
// 忽略表后缀å
List<String> ignoreSuffix = Arrays.asList("_test", "_test1");
// 2、配置想要忽略的表
ProcessConfig processConfig = ProcessConfig.builder()
.ignoreTableName(ignoreTableName)
.ignoreTablePrefix(ignorePrefix)
.ignoreTableSuffix(ignoreSuffix)
.build();
// 3、生成文档配置(包含以下自定义版本号、描述等配置连接)
Configuration config = Configuration.builder()
.version("1.0.1")
.description("数据库设计文档")
.dataSource(dataSource)
.engineConfig(engineConfig)
.produceConfig(processConfig).build();
// 4、执行生成
new DocumentationExecute(config).execute();
return "数据库文档以生成完毕,文档存放路径:" + fileName;
}
}
生成的文档类型可根据具体的需要进行生成,html是最方便简单不占内存的,也可以引入freemarker,进行展示,WORD就是我们普通的word文档,具体的可根据具体的需要使用。
三、完成效果展示
只需要以上的代码即可完成,发送请求测试,效果如下。
基本上只要数据库的表注释和字段注释等等都比较有一个好习惯的话,生成出来的文档都是一目了然的,例如以下:
方便快捷,而且还能实时更行。