資料庫說明文檔,在我們開發項目時是非常必要的,有時項目交付時,客戶也是需要讓我們提供的,而如果人工編寫,比如耗時,通過screw組件來生成文檔,非常方便。 源代碼和使用:https://github.com/pig-mesh/screw 添加依賴 <dependency> <groupId>cn.s ...
資料庫說明文檔,在我們開發項目時是非常必要的,有時項目交付時,客戶也是需要讓我們提供的,而如果人工編寫,比如耗時,通過screw組件來生成文檔,非常方便。
添加依賴
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</version>
</dependency>
編寫生成資料庫代碼
@Test
public void documentGeneration() {
// 數據源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/pig");
hikariConfig.setUsername("root");
hikariConfig.setPassword("123456");
// 設置可以獲取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
// 生成配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路徑
.fileOutputDir("d:\\資料庫說明文檔screw")
// 打開目錄
.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()
// 指定生成邏輯、當存在指定表、指定表首碼、指定表尾碼時,將生成指定表,其餘表不生成、並跳過忽略表配置
// 根據名稱指定表生成
.designatedTableName(new ArrayList<>())
// 根據表首碼生成
.designatedTablePrefix(new ArrayList<>())
// 根據表尾碼生成
.designatedTableSuffix(new ArrayList<>())
// 忽略表名
.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();
}
文檔效果
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!