网站首页 > 博客文章 正文
说明
screw,简洁好用的数据库表结构文档生成工具。
特点,1、简洁、轻量、设计良好,2、多数据库支持,3、多种格式文档,4、灵活扩展。
地址:
https://gitee.com/leshalv/screw
工程
功能说明:
将某个mysql数据库中的表生成文档,文档格式可以是:html、word、markdown。
pom.xml
<!-- screw库,简洁好用的数据库表结构文档生成器 -->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>
<!-- 数据库连接 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<!-- Mysql Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
生成代码:
package com.what21.demo.screw;
import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
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 javax.sql.DataSource;
import java.util.Arrays;
import java.util.Collections;
public class ScrewMain {
private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/xxl_job?serverTimezone=GMT";
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "root1234";
private static final String FILE_OUTPUT_DIR = "D:/Download";
// 可以设置 Word 或者 Markdown 格式
private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.MD;
private static final String DOC_FILE_NAME = "数据库文档";
private static final String DOC_VERSION = "1.0.0";
private static final String DOC_DESCRIPTION = "文档描述";
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();
}
/**
* 创建数据源
*/
private static DataSource buildDataSource() {
// 创建 HikariConfig 配置类
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl(DB_URL);
hikariConfig.setUsername(DB_USERNAME);
hikariConfig.setPassword(DB_PASSWORD);
// 设置可以获取 tables remarks 信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
// 创建数据源
return new HikariDataSource(hikariConfig);
}
/**
* 创建 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();
}
/**
* 创建 screw 的处理配置,一般可忽略
* 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
*/
private static ProcessConfig buildProcessConfig() {
return ProcessConfig.builder()
.designatedTableName(Collections.<String>emptyList()) // 根据名称指定表生成
.designatedTablePrefix(Collections.<String>emptyList()) //根据表前缀生成
.designatedTableSuffix(Collections.<String>emptyList()) // 根据表后缀生成
.ignoreTableName(Arrays.asList("test_user", "test_group")) // 忽略表名
.ignoreTablePrefix(Collections.singletonList("test_")) // 忽略表前缀
.ignoreTableSuffix(Collections.singletonList("_test")) // 忽略表后缀
.build();
}
}
生成的效果:
猜你喜欢
- 2025-07-17 你没见过的分库分表原理解析和解决方案(二)
- 2025-07-17 安装MySQL(绿联nas安装mysql)
- 2025-07-17 SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
- 2025-07-17 一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!
- 2025-07-17 高效使用Java构建工具,Maven篇|云效工程师指北
- 2025-07-17 SpringBoot数据库操作的应用(springboot如何操作数据库)
- 2025-07-17 Mac Docker环境,利用Canal实现MySQL同步ES
- 2025-07-17 经常使用到开源的MySQL,今天我们就来系统地认识一下
- 2025-07-17 用 Spring AI Alibaba 开发了一款能连接 MySQL 的 MCP 服务,手把手教你
- 2025-07-17 手把手教你!Spring Boot 整合 Apache Spark 玩转 MySQL 数据处理
你 发表评论:
欢迎- 最近发表
-
- 印度IT咨询公司Infosys 获得谷歌5亿美元大单
- 印度信息技术巨头Infosys对地球观测初创公司GalaxEye进行战略投资
- 你没见过的分库分表原理解析和解决方案(二)
- 安装MySQL(绿联nas安装mysql)
- SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
- 一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!
- 高效使用Java构建工具,Maven篇|云效工程师指北
- Java,screw,生成简洁好用的数据库表结构(html、doc、md)文档
- SpringBoot数据库操作的应用(springboot如何操作数据库)
- Mac Docker环境,利用Canal实现MySQL同步ES
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)