• 使用screw自动生成数据库文档


    screw是一款简洁好用的数据库表结构文档生成器

    下面展示如何运行代码自动生成数据库表结构文档

    1.引入依赖

    1. <dependency>
    2.     <groupId>cn.smallbun.screwgroupId>
    3.     <artifactId>screw-coreartifactId>
    4.     <version>1.0.5version>
    5. dependency>
    6. <dependency>
    7.     <groupId>com.zaxxergroupId>
    8.     <artifactId>HikariCPartifactId>
    9.     <version>3.4.5version>
    10. dependency>
    11. <dependency>
    12.     <groupId>mysqlgroupId>
    13.     <artifactId>mysql-connector-javaartifactId>
    14.     <version>8.0.20version>
    15.     <scope>runtimescope>
    16. dependency>


     

    2.生成数据库设计文档主类
    BuildDataBaseDoc.java

    1. package com.sgsg.device.utils;
    2. import java.util.ArrayList;
    3. import javax.sql.DataSource;
    4. import com.zaxxer.hikari.HikariConfig;
    5. import com.zaxxer.hikari.HikariDataSource;
    6. import cn.smallbun.screw.core.Configuration;
    7. import cn.smallbun.screw.core.engine.EngineConfig;
    8. import cn.smallbun.screw.core.engine.EngineFileType;
    9. import cn.smallbun.screw.core.engine.EngineTemplateType;
    10. import cn.smallbun.screw.core.execute.DocumentationExecute;
    11. import cn.smallbun.screw.core.process.ProcessConfig;
    12. public class BuildDataBaseDoc {
    13.     /**
    14.      * 文档生成
    15.      */
    16.     public static void main(String[] args) {
    17.        //数据源
    18.        HikariConfig hikariConfig = new HikariConfig();
    19.        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
    20.        //String jdbcUrl = "jdbc:mysql://192.168.0.208:3306/xxx"
    21.        //        + "?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&createDatabaseIfNotExist=true";
    22.        hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/znmkcs1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC");
    23.        //hikariConfig.setJdbcUrl(jdbcUrl);
    24.        hikariConfig.setUsername("root");
    25.        hikariConfig.setPassword("xxxxxx");
    26.        //设置可以获取tables remarks信息
    27.        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
    28.        hikariConfig.setMinimumIdle(2);
    29.        hikariConfig.setMaximumPoolSize(5);
    30.        DataSource dataSource = new HikariDataSource(hikariConfig);
    31.        String fileOutputDir = "d:/software";
    32.        //生成配置
    33.        EngineConfig engineConfig = EngineConfig.builder()
    34.              //生成文件路径
    35.              .fileOutputDir(fileOutputDir)
    36.              //打开目录
    37.              .openOutputDir(true)
    38.              //文件类型
    39.              .fileType(EngineFileType.HTML)
    40.              //生成模板实现
    41.              .produceType(EngineTemplateType.freemarker)
    42.              //自定义文件名称
    43.              .fileName("自定义文件名称").build();
    44.     
    45.        //忽略表
    46.        ArrayList ignoreTableName = new ArrayList<>();
    47.        ignoreTableName.add("test_user");
    48.        ignoreTableName.add("test_group");
    49.        //忽略表前缀
    50.        ArrayList ignorePrefix = new ArrayList<>();
    51.        ignorePrefix.add("test_");
    52.        //忽略表后缀    
    53.        ArrayList ignoreSuffix = new ArrayList<>();
    54.        ignoreSuffix.add("_test");
    55.        ProcessConfig processConfig = ProcessConfig.builder()
    56.              //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 
    57.              //根据名称指定表生成
    58.              .designatedTableName(new ArrayList())
    59.              //根据表前缀生成
    60.              .designatedTablePrefix(new ArrayList())
    61.              //根据表后缀生成 
    62.              .designatedTableSuffix(new ArrayList())
    63.              //忽略表名
    64.              .ignoreTableName(ignoreTableName)
    65.              //忽略表前缀
    66.              .ignoreTablePrefix(ignorePrefix)
    67.              //忽略表后缀
    68.              .ignoreTableSuffix(ignoreSuffix).build();
    69.        //配置
    70.        Configuration config = Configuration.builder()
    71.              //版本
    72.              .version("1.0.0")
    73.              //描述
    74.              .description("数据库设计文档生成")
    75.              //数据源
    76.              .dataSource(dataSource)
    77.              //生成配置
    78.              .engineConfig(engineConfig)
    79.              //生成配置
    80.              .produceConfig(processConfig)
    81.              .build();
    82.        //执行生成
    83.        new DocumentationExecute(config).execute();
    84.     }
    85. }

    3.运行生成文档

  • 相关阅读:
    【编译原理】-- 第一章(翻译程序、编译程序、汇编程序、解释程序、编译过程概述)
    Python基础库-正则表达式库
    java诊断工具
    使用Portainer图形化工具轻松管理远程Docker环境并实现远程访问
    Windows网络模型中的select模型和事件选择模型
    Zabbix监控系统系列之二十二:ESXi虚拟化监控
    JSP教学评估管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
    C++学习笔记一: 变量和基本类型
    系分 - 系统安全分析与设计
    ubuntu基本配置和suricata安装、模拟攻击
  • 原文地址:https://blog.csdn.net/liuyuxuan2388/article/details/133380148