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("数据库设计文档生成完成!");
    }
}

直接运行即可

相关推荐
pixcarp1 小时前
知识库系统的内容资产闭环怎么设计
服务器·数据库·后端·golang
JosieBook2 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
吴声子夜歌4 小时前
SQL经典实例——使用多张表
数据库·sql
倔强的石头_5 小时前
《Kingbase护城河》——深度解密数据库行锁冲突与等待事件架构
数据库
IT策士5 小时前
Redis 从入门到精通:性能调优与多语言客户端对比
数据库·redis·缓存
Bert.Cai6 小时前
Oracle INSTR函数详解
数据库·oracle
千寻girling6 小时前
记录第一次学习 Docker
学习·docker·容器
Kobebryant-Manba6 小时前
学习RNN(简洁实现)
人工智能·rnn·学习
知南x7 小时前
【DPDK例程学习】(4) l2fwd
学习·word
努力努力再努力FFF7 小时前
大学四年AI能力规划:从入门学习到简历表达
人工智能·学习