美文网首页
Java导出Markdown格式的数据字典

Java导出Markdown格式的数据字典

作者: Ssymon | 来源:发表于2020-12-28 11:54 被阅读0次

    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;
        }
    }
    

    相关文章

      网友评论

          本文标题:Java导出Markdown格式的数据字典

          本文链接:https://www.haomeiwen.com/subject/ftbznktx.html