记一次数据库文档整理,亲测有用。接手新项目时,不熟悉当前数据数据库设计,也没有现成文档查看,可以考虑自己生成一个文档,方便自己查阅。
Java代码如下:
package com.xxx.xxx;
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 com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.Test;
import javax.sql.DataSource;
import java.util.ArrayList;
/**
* @description 自动整理数据库文档
* @date 2020/7/28 17:08
*/
public class DBImportTest {
@Test
public void dbImportTest() {
// 数据源
String className = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/testDB?useUnicode=true&characterEncoding=UTF-8&useSSL=true";
String userName = "admin";
String password = "123456";
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(className);
hikariConfig.setJdbcUrl(url);
hikariConfig.setUsername(userName);
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("/Users/DBFile")
// 打开目录
.openOutputDir(true)
// 文件类型
.fileType(EngineFileType.HTML)
// 生成模板实现
.produceType(EngineTemplateType.freemarker).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()
// 忽略表名
.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();
}
}
pom.xml依赖如下:
<!-- emoji依赖 -->
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
</dependency>
<!--数据库文档核心依赖-->
<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>
特点:
-
多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer;
-
多种格式文档。支持 MD、HTML、WORD 格式;