数据库文档整理——利用Java代码自动生成数据库文档

      记一次数据库文档整理,亲测有用。接手新项目时,不熟悉当前数据数据库设计,也没有现成文档查看,可以考虑自己生成一个文档,方便自己查阅。

Java代码如下:

package com.xxx.xxx;

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 org.junit.Test;

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

/**
* @description 自动整理数据库文档
* @date 2020/7/28 17:08
*/
public class DBImportTest {

    @Test
    public void dbImportTest() {
        // 数据源
        String className = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://127.0.0.1:3306/testDB?useUnicode=true&characterEncoding=UTF-8&useSSL=true";
        String userName = "admin";
        String password = "123456";
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName(className);
        hikariConfig.setJdbcUrl(url);
        hikariConfig.setUsername(userName);
        hikariConfig.setPassword(password);
        // 设置可以获取tables remarks信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        hikariConfig.setMinimumIdle(2);
        hikariConfig.setMaximumPoolSize(5);
        DataSource dataSource = new HikariDataSource(hikariConfig);
        // 生成配置
        EngineConfig engineConfig = EngineConfig.builder()
                // 生成文件路径
                .fileOutputDir("/Users/DBFile")
                // 打开目录
                .openOutputDir(true)
                // 文件类型
                .fileType(EngineFileType.HTML)
                // 生成模板实现
                .produceType(EngineTemplateType.freemarker).build();

        // 忽略表
        ArrayList ignoreTableName = new ArrayList<>();
        ignoreTableName.add("test_user");
        ignoreTableName.add("test_group");
        // 忽略表前缀
        ArrayList ignorePrefix = new ArrayList<>();
        ignorePrefix.add("test_");
        // 忽略表后缀
        ArrayList 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();
    }

}

pom.xml依赖如下:

        
        
            com.vdurmont
            emoji-java
        

        
        
            cn.smallbun.screw
            screw-core
            1.0.3
        

        
        
            com.zaxxer
            HikariCP
            3.4.5
        

        
        
            mysql
            mysql-connector-java
            8.0.20
        

特点:

  • 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer;

  • 多种格式文档。支持 MD、HTML、WORD 格式;

你可能感兴趣的:(数据库文档整理)