开源一款 SpringBoot3 + Vue3 数据库文档工具,自动生成 Markdown/HTML

大家好,我是大华! 最近在项目上,经常要整理数据库文档,实在是有点烦。 表结构改了,文档还得手动更新,经常出现文档跟实际对不上的情况。于是抽空写了个小工具,感觉还挺实用的。

今天给大家分享一下,项目源码在文末了哦~

这个工具能做什么?

简单说,就是自动生成数据库文档。

比如你有个MySQL数据库,输入连接信息,它就能把所有的表结构、字段注释、索引信息都解析出来,生成一份清晰的文档。

也支持直接上传SQL文件。有时候我们只有建表语句,把SQL文件丢进去,它也能分析出表结构来生成文档。

来看看操作效果图。

1. 输入数据库连接信息

信息输入后点击生成文档,生成的文档可以在线查看,也可以直接导出。

同时还支持上传sql文件生成

2. 导出的 HTML 文档

HTML的格式似乎略丑了点。

3. 导出的 Markdown 文档

因为我用的是在线文档,导出Markdown的格式也漂亮多了,推荐导出的格式。

下面是我把文档内容复制到飞书在线文档的效果,看起来清爽了。

可以把文档内容复制到任意支持Markdown格式的文档,改数据库的时候,直接再次生成就行啦。

输出格式

可以导出两种格式:

  • HTML:在浏览器里查看比较方便,样式也挺清爽的
  • Markdown:适合写技术文档的时候用

技术实现

后端用的是SpringBoot3,前端是Vue3 + TypeScript。数据库操作用了MyBatisPlus,有完整的注册和登录功能。

代码结构比较清晰:

bash 复制代码
database-document-springboot/
├── sql/                  # SQL文件
├── src/main/java/com/document/
│   ├── config/           # 配置类
│   ├── controller/       # 控制器层
│   ├── service/          # 业务逻辑层
│   ├── mapper/           # 数据访问层
│   ├── entity/           # 实体类
│   ├── dto/              # 数据传输对象
│   └── common/           # 通用组件
│   └── filter/           # 过滤器
│   └── handler           # 异常处理
│   └── vo                # 视图对象
├── src/main/resources/
│   └── application.yml   # 应用配置
└── database-document-vue3/
    ├── src/views/        # 页面组件
    ├── src/components/   # 业务组件
    ├── src/stores/       # 状态管理
    ├── src/api/          # 接口管理
    ├── src/types/        # TypeScript类型
    ├── src/router/       # 路由配置
    └── src/styles/       # 样式文件

使用场景

在实际项目中,这几个场景比较有用:

新同事熟悉项目:以前要挨个表解释,现在直接给文档,省事很多。

前后端联调:字段说明、数据类型都很清楚,减少沟通成本。

项目文档:数据库设计文档是项目交付的必备材料,用这个工具生成既准确又省时间。

使用方法

项目地址: 后端:gitee.com/liuchanghua... 前端:gitee.com/liuchanghua...

后端:

bash 复制代码
git clone https://gitee.com/liuchanghua/database-document-springboot.git
# 配一下数据库,启动就行

前端:

bash 复制代码
git clone https://gitee.com/liuchanghua/database-document-vue3.git
npm install
npm run dev

写在最后

这个工具其实挺简单的,就是解决了实际开发中的一个小痛点。如果你也经常需要整理数据库文档,可以试试看,应该能节省不少时间。

如果有什么建议或者发现了bug,欢迎反馈。觉得有用的话,给个Star鼓励一下就更好了。

本文首发于公众号:程序员刘大华,专注分享前后端开发的实战笔记。关注我,少走弯路,一起进步!

📌往期精彩

《这20条SQL优化方案,让你的数据库查询速度提升10倍》

《MySQL 为什么不推荐用雪花ID 和 UUID 做主键?》

《无需UI库!50行CSS打造丝滑弹性动效导航栏,拿来即用》

《SpringBoot3+Vue3实现的数据库文档工具,自动生成Markdown/HTML》

相关推荐
wo_jack1 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
量化分析码农2 小时前
【Python量化波动率实战 02】波动率会传染:EWMA 指数加权给近期行情更大话语权
后端
FRing032 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
GISer_Jing3 小时前
如何学习Agent
后端·langchain
JWASX4 小时前
【Go】map 源码解析 - group
后端·golang·map·源码分析
量化分析码农5 小时前
【Python量化波动率实战 01】波动率是怎么算的:年化、滚动与区间估计一次讲清
后端
特立独行的猫A5 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
金銀銅鐵5 小时前
从一个类名到一张类图:用反射自动生成 PlantUML
java·后端·uml
小郎君6585 小时前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·spring cloud
ruanno_top6 小时前
点全选,已选的被清空了:Transfer 三态复选框的三个 bug
vue.js