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

直接运行即可

相关推荐
YOU OU1 小时前
Redis基础常识与命令
数据库·redis·缓存
克里斯蒂亚诺更新3 小时前
ruoyi角色权限的对应关系
笔记
Database_Cool_3 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森4 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_4 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白5 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
a1117765 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
窝子面5 小时前
手搓最简前后端协作-node
javascript·数据库
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest