screw-core生成数据库表结构文档简单例子

使用screw-core优点:

1、轻量级‌:无复杂依赖,集成简单

2、多数据库支持:MySQL、MariaDB、Oracle、SQL Server、PostgreSQL、TiDB 等

3、多格式输出:HTML、Word、Markdown

4、高度可定制:支持忽略表、前缀/后缀过滤、自定义模板(Freemarker)

下面给出简单例子

一、添加相关依赖

复制代码
<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>1.0.5</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.5</version>
</dependency>

二、创建生成类ScrewExportDemo,写个main方法

完整代码如下:

java 复制代码
import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;

import javax.sql.DataSource;

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 java.util.ArrayList;

public class ScrewExportDemo {
    public static void main(String[] args) {
        // 1. 配置数据源
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setJdbcUrl("jdbc:mysql://数据库ip:数据库端口/数据库名?useInformationSchema=true&characterEncoding=UTF-8");
        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
        hikariConfig.setUsername("用户名");
        hikariConfig.setPassword("用户密码");
        hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 必须启用以获取注释
        DataSource dataSource = new HikariDataSource(hikariConfig);

        // 2. 配置生成引擎 (输出为 Word)
        EngineConfig engineConfig = EngineConfig.builder()
                .fileOutputDir("d:/screw-docs")  // 输出目录
                .openOutputDir(true)             // 生成后是否打开目录
                .fileType(EngineFileType.WORD)   // 文件类型:WORD, HTML, MD
                .produceType(EngineTemplateType.freemarker)
                .fileName("数据库设计文档")        // 文件名
                .build();

        // 忽略配置(可选)
        ProcessConfig processConfig = ProcessConfig.builder()
                .ignoreTableName(new ArrayList<String>() {{ add("test_order"); }})
                .ignoreTablePrefix(new ArrayList<String>() {{ add("test_"); }})
                .build();
        // 3. 配置生成参数
        Configuration config = Configuration.builder()
                .version("1.0.0")                // 文档版本
                .description("数据库表结构文档")   // 文档描述
                .dataSource(dataSource)    // 数据源
                .engineConfig(engineConfig)      // 引擎配置
                .produceConfig(processConfig) // 生产配置
                .build();

        // 4. 执行生成
        new DocumentationExecute(config).execute();

        System.out.println("数据库设计文档生成完成!");
    }
}

直接运行即可

相关推荐
llilian_168 小时前
ptp从时钟 ptp授时模块 如何挑选PTP从时钟授时协议模块 ptp从时钟模块
数据库·功能测试·单片机·嵌入式硬件·测试工具
笑鸿的学习笔记8 小时前
git笔记之--abort和--quit参数详解
笔记·git
Z.风止8 小时前
Large Model-learning(1)
开发语言·笔记·git·python·学习
Be for thing8 小时前
分支管理与冲突解决
git·学习
municornm8 小时前
【MySQL】to_date()日期转换
数据库·mysql
-To be number.wan8 小时前
PyCharm接入DeepSeek全教程|3种方法+避坑指南
python·学习·pycharm
لا معنى له8 小时前
综述翻译:Embodied Science: Closing the Discovery Loop withAgentic Embodied AI
人工智能·笔记·学习
chushiyunen8 小时前
检索模型bi-encoder笔记
笔记
Yao.Li8 小时前
Dify 宏观学习知识架构与学习路线
学习·架构
lizhihai_999 小时前
股市学习心得-布林线做T方法
学习