screw一鍵生成數據庫文檔


1. 簡介

  在項目開發和交付階段,數據庫文檔是必不可少的。對於大型項目多個數據庫幾百甚至幾千張表來說,手寫數據庫文檔必然是耗時且痛苦的。因此需要一個插件自動生成文檔。
  screw提供了多種文件類型和多種模板的自動生成工具,上手簡單且效果不錯。

2. 支持數據庫類型

  MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 其他正在開發中

3. 示例代碼

  • 創建項目
  • 修改pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.c3stones</groupId>
	<artifactId>generate-database-document-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>generate-database-document-demo</name>
	<description>Generate Database Document Demo</description>

	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<dependencies>
		<!-- Screw Core -->
		<dependency>
			<groupId>cn.smallbun.screw</groupId>
			<artifactId>screw-core</artifactId>
			<version>1.0.2</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>
	</dependencies>

</project>
  • 創建生成類
import java.util.Arrays;
import java.util.List;

import javax.sql.DataSource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

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;

/**
 * 生成數據庫文檔
 * 
 * @author CL
 *
 */
public class GenerateDatabaseDocumnet {

	public static void main(String[] args) {
		// 數據源
		HikariConfig hikariConfig = new HikariConfig();
		hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
		hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");
		hikariConfig.setUsername("root");
		hikariConfig.setPassword("123456");
		// 設置可以獲取tables remarks信息
		hikariConfig.addDataSourceProperty("useInformationSchema", "true");
		hikariConfig.setMinimumIdle(2);
		hikariConfig.setMaximumPoolSize(5);
		DataSource dataSource = new HikariDataSource(hikariConfig);

		// 1、生成文件配置
		EngineConfig engineConfig = EngineConfig.builder()
				// 生成文件路徑
				.fileOutputDir("C:\\Users\\Administrator\\Desktop")
				// 打開目錄
				.openOutputDir(false)
				// 文件類型
				.fileType(EngineFileType.HTML)
				// 生成模板實現
				.produceType(EngineTemplateType.freemarker).build();

		// 忽略表名
		List<String> ignoreTableName = Arrays.asList("test");
		// 忽略表前綴
		List<String> ignorePrefix = Arrays.asList("test_", "test");
		// 忽略表后綴
		List<String> ignoreSuffix = Arrays.asList("_test", "test");

		// 2、配置想要忽略的表
		ProcessConfig processConfig = ProcessConfig.builder().ignoreTableName(ignoreTableName)
				.ignoreTablePrefix(ignorePrefix).ignoreTableSuffix(ignoreSuffix).build();

		// 3、生成文檔配置(包含以下自定義版本號、描述等配置連接)
		Configuration config = Configuration.builder().version("1.0.0").description("數據庫文檔").dataSource(dataSource)
				.engineConfig(engineConfig).produceConfig(processConfig).build();

		// 4、執行生成
		new DocumentationExecute(config).execute();
	}

}
  • 運行即可

4. 說明

  • 文件類型
      EngineFileType枚舉類中提供三種類型:HTMLWORDMD
  • 模板類型
      EngineTemplateType枚舉類中提供兩種類型:freemarkervelocity
  • 生成方式
      一種是代碼生成,還有一種是通過Maven打包生成,詳情請查看:https://gitee.com/leshalv/screw

5. 項目地址

  generate-database-document-demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM