zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    视图的INSERT、UPDATE、DELETE注意事项
    SQL SERVER 用户管理 TSQL 命令
    SQL SERVER 利用存储过程查看角色和用户信息
    犯错了~
    配置tomcat
    python中的类继承之super
    python中参数解析
    python的几个内联函数:lambda ,zip,filter, map, reduce
    第一次性能测试http_load
    不能在 DropDownList 中选择多个项
  • 原文地址:https://www.cnblogs.com/cao-lei/p/13398206.html
Copyright © 2011-2022 走看看