screw一键生成数据库文档

1. 简介

  在项目开发和交付阶段,数据库文档是必不可少的。对于大型项目多个数据库几百甚至几千张表来说,手写数据库文档必然是耗时且痛苦的。因此需要一个插件自动生成文档。
  screw提供了多种文件类型和多种模板的自动生成工具,上手简单且效果不错。

2. 支持数据库类型

  MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 其他正在开发中

3. 示例代码

  • 创建项目
    screw一键生成数据库文档_第1张图片
  • 修改pom.xml

	4.0.0
	com.c3stones
	generate-database-document-demo
	0.0.1-SNAPSHOT
	generate-database-document-demo
	Generate Database Document Demo

	
		1.8
		1.8
	

	
		
		
			cn.smallbun.screw
			screw-core
			1.0.2
		
		
		
			com.zaxxer
			HikariCP
			3.4.5
		
		
		
			mysql
			mysql-connector-java
			8.0.20
		
	

  • 创建生产类
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 ignoreTableName = Arrays.asList("test");
		// 忽略表前缀
		List ignorePrefix = Arrays.asList("test_", "test");
		// 忽略表后缀
		List 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

你可能感兴趣的:(screw一键生成数据库文档)