数据库结构文档
大约 1 分钟languagejava
概述
通过 freemarker 和 screw 可生成项目数据库结构文档
案例
添加两个依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</version>
</dependency>
制作测试文件 \ecomm\ecomm-authority-center\src\test\java\com\xdf\DBDocTest.java 代码如下
package com.xdf;
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.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author chanchaw
* @create 2025-08-23 8:08
*/
@SpringBootTest
@RunWith(SpringRunner.class)
public class DBDocTest {
@Autowired
private ApplicationContext context;
@Test
public void buildDBDoc(){
DataSource ds = context.getBean(DataSource.class);
EngineConfig engineConfig = EngineConfig.builder().fileOutputDir("D:\\source\\java\\ecomm")
.openOutputDir(true).fileType(EngineFileType.HTML).produceType(EngineTemplateType.freemarker).build();
Configuration config = Configuration.builder().version("1.0.0").description("微服务电商实战").dataSource(ds)
.engineConfig(engineConfig).produceConfig(getProcessConfig()).build();
new DocumentationExecute(config).execute();
}
private ProcessConfig getProcessConfig(){
List<String> ignoreTableName = Collections.singletonList("undo_log");
List<String> ignorePrefix = Arrays.asList("a","b");
List<String> ignoreSuffix = Arrays.asList("_test","_Test");
return ProcessConfig.builder()
.designatedTableName(Collections.emptyList())// 只生成指定名称的表的稳当
.designatedTablePrefix(Collections.emptyList())// 生成指定前缀的表的文档
.designatedTableSuffix(Collections.emptyList())// 生成指定后缀的表的稳当
.ignoreTableName(ignoreTableName)// 忽略指定名称的表
.ignoreTablePrefix(ignorePrefix)// 忽略指定前缀的表
.ignoreTableSuffix(ignoreSuffix)// 忽略指定后缀的表
.build();
}
}
运行后会在项目根目录下生成数据库文档
