1、創建一個SpringBoot項目(本人使用的是IntelliJ IDEA 2020.1 x64)
- 最佳簡單的項目配置如下:

2、添加相關依賴
<!--screw依賴-->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>
<!--解決連接oracle中文亂碼-->
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>orai18n</artifactId>
<version>12.1.0.2.0</version>
</dependency>
3、連接數據庫配置
#screw支持的數據庫:MySQL、MariaDB、TIDB、Oracle、SqlServer、PostgreSQL、Cache DB(2016)
spring.datasource.url=jdbc:oracle:thin:@自填服務器地址:1521:庫名
spring.datasource.username=XXX
spring.datasource.password=XXX
spring.datasource.xa.properties.useInformationSchema=true
4、腳本主要內容
package com.sinby.demo;
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.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@SpringBootTest
class DemoApplicationTests {
@Autowired
ApplicationContext applicationContext;
@Test
void contextLoads() {
DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);
// 生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路徑(可自定義)
.fileOutputDir("F:/XXX")
// 打開目錄
.openOutputDir(false)
//生成文件名(可自定義)
.fileName("tablefile")
// 文件類型 .HTML .WORD .MARKDOWN
.fileType(EngineFileType.WORD)
// 生成模板實現
.produceType(EngineTemplateType.freemarker)
.build();
// 生成文檔配置(包含以下自定義版本號、描述等配置連接)
Configuration config = Configuration.builder()
.version("1.0.1") //可自定義
.description("某某數據庫中文文檔") //可自定義
.dataSource(dataSourceMysql)
.engineConfig(engineConfig)
.produceConfig(getProcessConfig())
.build();
// 執行生成
new DocumentationExecute(config).execute();
}
/**
* 配置想要生成的表+ 配置想要忽略的表
* @return 生成表配置
*/
public static ProcessConfig getProcessConfig(){
// 忽略表名
List<String> ignoreTableName = Arrays.asList("aa","test_group");
// 忽略表前綴,如忽略a開頭的數據庫表
List<String> ignorePrefix = Arrays.asList("T_"); //,"t"
// 忽略表后綴
List<String> ignoreSuffix = Arrays.asList("_test","czb_");
return ProcessConfig.builder()
//根據名稱指定表生成
.designatedTableName(new ArrayList<>())
//根據表前綴生成
.designatedTablePrefix(new ArrayList<>())
//根據表后綴生成
.designatedTableSuffix(new ArrayList<>())
//忽略表名
.ignoreTableName(ignoreTableName)
//忽略表前綴
.ignoreTablePrefix(ignorePrefix).build();
//忽略表后綴
.ignoreTableSuffix(ignoreSuffix).build();
}
}
5、參考
官網教程:SpringBoot整合screw生成數據庫文檔