老板让我把数据库字典导出到Markdown格式的文件
Java导出Markdown格式的数据字典
前一阵子老板让我写个把项目的数据库字典导出来,但是不要word格式,就要markdown格式的。我第一反应是直接用数据库工具导出word在转成markdown不就行了吗,但是呢数据库更新了不是又要重新导出和转换,直接导出markdown不香吗?
最近整理了一下上传到gitee上去了,需要的自取。 Gitee地址:
如何使用
下面讲一下如何使用,我这里用的IDE是IDEA。 clone地址:
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 est.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
推荐使用 ,将Markdown转Word,HTML等格式文件
后面有时间我会把pandoc集成到项目中来
下一篇:
ORACLE逗号分割的字符串转多行