老板让我把数据库字典导出到Markdown格式的文件
Java导出Markdown格式的数据字典
前一阵子老板让我写个把项目的数据库字典导出来,但是不要word格式,就要markdown格式的。我第一反应是直接用数据库工具导出word在转成markdown不就行了吗,但是呢数据库更新了不是又要重新导出和转换,直接导出markdown不香吗?
最近整理了一下上传到gitee上去了,需要的自取。
Gitee地址:https://gitee.com/ssymon/export-to-md.git
如何使用
下面讲一下如何使用,我这里用的IDE是IDEA。
clone地址:https://gitee.com/ssymon/export-to-md.git
1.首先将项目clone到本地
git clone https://gitee.com/ssymon/export-to-md.git
2.使用Idea打开项目
File->Open
,打开之后项目结构如下
3.修改配置文件
打开application.yml配置文件,修改成自己需要导出的数据库信息
db:
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=true&verifyServerCertificate=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true
username: root
password: 123456
# 数据库名
database:
- test
export:
# 文件夹
dir: D:\symon
4.打开ExportApplication.java并执行main函数
public static void main(String[] args) {
DatabaseExporter exporter = new MySQLDatabaseExporter(ConfigUtil.loadConfig());
exporter.export();
}
等待之后控制台显示如下信息,则执行成功
Loading config - application.yml
Export success :D:\symon\test.md
导出结果
扩展数据库
通过实现
AbstractDatabaseExporter
类来扩展其他数据库,如下扩展Oracle数据库
public class OracleDatabaseExporter extends AbstractDatabaseExporter{
public OracleDatabaseExporter(AppConfig config) {
super(config);
}
@Override
protected PreparedStatement getTablePreparedStatement(Connection connection, String database) throws SQLException {
// 根据database数据库名拼接自定义SQL查询数据库表
// connection.prepareStatement("查询表SQL")
return null;
}
@Override
protected PreparedStatement getColumnPreparedStatement(Connection connection, String database) throws SQLException {
// 根据database数据库名拼接自定义SQL查询数据库表结构
// connection.prepareStatement("查询表结构SQL")
return null;
}
@Override
protected void setColumnPreparedStatementParams(PreparedStatement ps, String tableName) throws SQLException {
// 设置每个查询表结构SQL的参数:tableName表名
// 例如 ps.setString(1, tableName);
}
@Override
protected List<String> getPrimaryKeyColumnNames(Connection connection, String database, String tableName) throws SQLException {
// 获取数据库(database)表(tableName)的主键列名
return null;
}
}
Markdown转Word,HTML
推荐使用 pandoc ,将Markdown转Word,HTML等格式文件
后面有时间我会把pandoc集成到项目中来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义