老板让我把数据库字典导出到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集成到项目中来

经验分享 程序员 微信小程序 职场和发展