数据库文档生成

116 阅读1分钟

这是一个数据库文档生成软件。

程序主要文件

1、配置文件 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.angus</groupId>
    <artifactId>DBDocGenerate</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!--数据库文档核心依赖-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <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>

    </dependencies>

</project>

2、启动程序 Application.java

package com.angus;

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 com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import javax.sql.DataSource;
import java.util.ArrayList;

/**
 * @description: 数据库文档生成
 * @author: angus
 * @date: 2021/10/22 13:00
 */
public class Application {
    public static void main(String[] args) {
       //数据源
       HikariConfig hikariConfig = new HikariConfig();
       hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
       hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3307/test_schema?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
       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:\\cx\\workspace\\")
               //打开目录
               .openOutputDir(true)
               //文件类型
               .fileType(EngineFileType.HTML)
               //生成模板实现
               .produceType(EngineTemplateType.freemarker).build();

![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/81db11dd8a574b30b1a38452d7eb3e0f~tplv-k3u1fbpfcp-watermark.image?)
       //忽略表
       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()
               //忽略表名
               .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();
    }
}

生成文档案例

生成的文件名为: test_schema_数据库设计文档_1.0.0.html

image.png