首页 > 数据库 >数据库设计文档一键生成

数据库设计文档一键生成

时间:2024-07-17 09:59:36浏览次数:22  
标签:screw String DB 数据库 一键 private 文档 static final

1.引入MAVEN依赖

    <dependency>
        <groupId>cn.smallbun.screw</groupId>
        <artifactId>screw-core</artifactId>
        <version>1.0.5</version>
    </dependency>

2.配置相关常量

// 可以设置 Word 或者 Markdown 格式
    private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.WORD;
    private static final String DOC_VERSION = "V1.0.0";
    private static final String DOC_DESCRIPTION = "数据库表设计描述";
    private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306";
    private static final String DB_USERNAME = "root";
    private static final String DB_PASSWORD = "password";
    private static final String DB_NAME = "test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
    private static final String FILE_OUTPUT_DIR = "C:\\Users\\Public\\Desktop";
    private static final String DOC_FILE_NAME = "数据库表设计文档";

3.创建数据源

/**
     * 创建数据源
     */
    private static DataSource buildDataSource() {
        // 创建 HikariConfig 配置类
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
        hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME);
        hikariConfig.setUsername(DB_USERNAME);
        hikariConfig.setPassword(DB_PASSWORD);
        // 设置可以获取 tables remarks 信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        // 创建数据源
        return new HikariDataSource(hikariConfig);
    }

4.创建 screw 的引擎配置

 /**
     * 创建 screw 的引擎配置
     */
    private static EngineConfig buildEngineConfig() {
        return EngineConfig.builder()
                // 生成文件路径
                .fileOutputDir(FILE_OUTPUT_DIR)
                // 打开目录
                .openOutputDir(false)
                // 文件类型
                .fileType(FILE_OUTPUT_TYPE)
                // 文件类型
                .produceType(EngineTemplateType.freemarker)
                // 自定义文件名称
                .fileName(DOC_FILE_NAME)
                .build();
    }

5.创建 screw 的处理配置

/**
     * 创建 screw 的处理配置,一般可忽略
     * 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
     */
    private static ProcessConfig buildProcessConfig() {
        return ProcessConfig.builder()
                // 根据名称指定表生成
                .designatedTableName(Collections.<String>emptyList())
                // 根据表前缀生成
//                .designatedTablePrefix(Arrays.asList(new String[]{"xxx_"}))
                // 根据表后缀生成
                .designatedTableSuffix(Collections.<String>emptyList())
                // 忽略表名
//                .ignoreTableName(Arrays.asList("test", "mytable", "role", "t_role", "t_user"))
                // 忽略表前缀
                .ignoreTablePrefix(Collections.singletonList("gen_"))
                // 忽略表后缀
                //.ignoreTableSuffix(Collections.singletonList("_test"))
                .build();
    }

6.调用

public static void main(String[] args) {
        // 创建 screw 的配置
        Configuration config = Configuration.builder()
                // 版本
                .version(DOC_VERSION)
                // 描述
                .description(DOC_DESCRIPTION)
                // 数据源
                .dataSource(buildDataSource())
                // 引擎配置
                .engineConfig(buildEngineConfig())
                // 处理配置
                .produceConfig(buildProcessConfig())
                .build();
        // 执行 screw,生成数据库文档
        new DocumentationExecute(config).execute();
    }

标签:screw,String,DB,数据库,一键,private,文档,static,final
From: https://blog.csdn.net/itwen_666/article/details/140460827

相关文章

  • 大数据-数据库的学习
    大数据的基本处理流程:数据采集、存储管理、处理分析、结果呈现等环节大数据的全流程:数据采集与预处理、数据存储和管理、数据处理与分析、数据可视化、数据安全和隐私保护 等几个层面的内容 ......
  • 如何通过成熟的外发平台,实现文档安全外发管理?
    文档安全外发管理是企业信息安全管理的重要组成部分,它涉及到企业向外发送的文件,需要进行严格的控制和管理,防止敏感或机密信息的泄露。以下是一些关键考虑因素:文件外发的挑战:企业在文件外发时面临的主要挑战包括非法复制、恶意篡改和误操作,这些都可能导致信息泄露或损坏。外发文......
  • DBeaver安装教程(开发人员和数据库管理员通用数据库管理工具)
    前言DBeaver是一个通用的数据库管理工具和SQL客户端,支持MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby,以及其他兼容JDBC的数据库。DBeaver提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB数据,修改数据库结......
  • 一分钟解决CLIENT_PLUGIN_AUTH is required. IDEA连接数据库时报错
    CLIENT_PLUGIN_AUTHisrequired.IDEA连接数据库时报错​ 今天楼主在导入java项目时在连接数据库时IDEA报的错误为CLIENT_PLUGIN_AUTHisrequired.​ 报错如下图:经过多方排查,发现是之前下载过其他数据库,导致系统服务里已经启动了一个MySql服务​ 已经安装过小蜜蜂数据库,我......
  • Python自动化:智能对比Word文档,秒速锁定差异!
    Python自动化:智能对比Word文档,秒速锁定差异!原创 丹心向阳 数海丹心 2024年06月28日07:00 山东摘要:在我们的工作和学习中,经常需要对文档进行多次修改,如何快速准确地识别文档的最终版本,一直是让人头疼的问题。本文将介绍一种Python自动化技术,它可以自动对比两个Word文档之间......
  • Python自动化:10行代码免费解锁抖音、快手、小红书平台资源,无水印视频一键下载
    Python自动化:10行代码免费解锁抖音、快手、小红书平台资源,无水印视频一键下载原创 丹心向阳 数海丹心 2024年06月19日07:30 山东摘要:抖音、快手、小红书作为国内顶尖的短视频和娱乐平台,汇聚了巨大的流量和丰富的创意内容。对于自媒体从业人员而言,这些平台上的灵感和视频资......
  • 数据库必知必会-MongoDB
    文章目录1.关系型数据库与非关系型数据库2.MongoDB是最接近关系型数据库的非关系型数据库3.mongodb数据库的基本概念MongoDB命令5.4.node.js操作mongodb(所有对mongodb数据库操作都是异步的)总结1.关系型数据库与非关系型数据库关系型数据库是指表与表之间存在......
  • BeautifulSoup模块之初识,BeautifulSoup模块之四种对象,BeautifulSoup模块之文档树操
    ⅠBeautifulSoup模块之初识【一】介绍【1】简言简单来说,BeautifulSoup是python的一个库最主要的功能是从网页抓取数据。【2】官方解释BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要......
  • 数据库理论基础
    1.什么是数据库1.1数据描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。1.2数据库存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存......
  • Laravel数据库的魔法棒:深入探索数据库迁移(Migrations)
    Laravel数据库的魔法棒:深入探索数据库迁移(Migrations)在Laravel的世界中,数据库迁移(Migrations)是一种强大的工具,它允许开发者以版本控制的方式管理数据库结构的变化。通过迁移,你可以轻松地创建、修改或删除数据库表,同时保持代码的整洁和一致性。本文将带你深入了解Laravel数......