# 数据库文档生成工具 **Repository Path**: qinstudy/db-doc-tool ## Basic Information - **Project Name**: 数据库文档生成工具 - **Description**: 此工具根据当前数据库的表结构和字段,生成数据库文档。用户可以选择不同的输入参数,来生成整个数据库文档、生成只包含差异数据的数据库文档。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-10-04 - **Last Updated**: 2022-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库文档生成工具 ## 需求 当数据库中存在一定的表和字段时,为了便于查看表和字段信息,需要根据数据库信息生成数据库文档,这样通过数据库文档,表和字段信息一目了然。 当修改了数据库的表结构,数据库文档工具可以将新增加的表和新增加的字段存储在一个文档中。这样,通过查看文档,就知道相比于上次的数据库,此次数据库的哪些表、哪些字段发生了改动。 ## 思路 1、JDBC连接数据库,获取数据库的表、字段信息,并存储在结构数据中,然后根据现有结构数据生成数据库文档; 2、生成数据库文档后,使用序列化手段来保存现有结构数据; 3、后面再次生成数据库文档时,加载已经记录的数据,对比前后两者结构数据的差异,输出只包含差异数据的数据库文档。 ## 目录结构 ``` |-- db-doc-tool |-- src/main/java |-- cn.com.bang |-- bean //AppArgs类用于获取用户输入的参数;Table类、Column类,用于存储数据库的表数据、字段数据;TableEntry类封装了表名称和Table对象,便于后续JSON反序列化 |-- db //存放DbManager接口和MySQLManagerImpl类,用于管理数据库的连接,以及获取List结构数据 |-- doc //存放MainApplication入口类 |-- utils //存放ArgUtils、DocUtils工具类 |-- pom.xml |-- readme.md ``` ## 编译说明 使用下面的Maven命令编译源代码,产生字节码文件 ``` mvn clean package ``` ​ ## 使用方法 将源代码打成可执行的Jar包,在cmd窗口执行此Jar包,输入可选参数:-h mysql连接地址; -u mysql用户名; -p mysql密码; -t 运行类型1-new,2-compare,3-comapreFormExcel; -f 历史json文件路径。 #### 如果只需要根据数据库生成数据库文档,设置的参数如下: -h jdbc:mysql://127.0.0.1:3306/cgdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT -u root -p 123456 -t 1 #### 若需要对比之前的数据库是否发生了改变,设置的参数如下: -h jdbc:mysql://127.0.0.1:3306/cgdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT -u root -p 123456 -t 2 -f 历史json文件路径 ## 功能说明 -t 后面的参数为"1"时,会根据现有结构数据生成数据库文档。 -t 后面的参数为"2",且存在"历史json文件路径"这个参数时,去比较当前数据库的结构数据和序列化文件数据,输出只包含差异数据的数据库文档。