1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
| 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.HikariDataSource;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* <h1>数据库表文档生成</h1>
* */
//@SpringBootTest
//@RunWith(SpringRunner.class)
public class DBDocTest {
@Autowired
private ApplicationContext applicationContext;
@Test
public void buildDBDoc() {
HikariDataSource dataSourceMysql = new HikariDataSource();
dataSourceMysql.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSourceMysql.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/micro_iam?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai");
dataSourceMysql.setUsername("root");
dataSourceMysql.setPassword("root");
// 生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路径
.fileOutputDir("D:/software")
// 打开目录
.openOutputDir(false)
// 文件类型
.fileType(EngineFileType.HTML)
.produceType(EngineTemplateType.freemarker).build();
// 生成文档配置, 包含自定义版本号、描述等等
// 数据库名_description_version.html
Configuration config = Configuration.builder()
.version("1.0.0")
.description("IAM系统数据库文档")
.dataSource(dataSourceMysql)
.engineConfig(engineConfig)
.produceConfig(getProduceConfig())
.build();
// 执行生成
new DocumentationExecute(config).execute();
}
/**
* <h2>配置想要生成的数据表和想要忽略的数据表</h2>
* */
private ProcessConfig getProduceConfig() {
// 想要忽略的数据表
List<String> ignoreTableName = Collections.singletonList("undo_log");
// 忽略表前缀, 忽略 a、b 开头的数据库表
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();
}
}
|