项目源码地址: github.com/wangyuheng/…
背景
利用plantuml
绘制架构评审图时,发现数据库ER图手写字段信息成本太大,需要一个把DB表结构转换为plantuml
格式的工具。
搜索了一番,没有发现支持工具,所以准备手撸一个,并记录下设计及编码实现的过程。
需求
一句话需求: 读取数据库表结构,转换为plantuml格式的ER图。
设计
根据需求抽象出下列概念
基础元素(一个输入一个输出)
ER
->plantuml
格式er
图db_schema
-> 数据库结构,ddl语句是其中一种实现形式
扩展概念
table
-> 表结构信息template
-> 模板,定义er
图输出格式
操作行为
reader
-> 读取数据库结构,识别table
parser
-> 根据table
和template
转换为ER
图writer
-> 输出ER
图文件
整体交互
1 | 复制代码storage "Context" { |
选型
都是基本的文件及String操作,通过 druid 进行sql解析
编码实现
Reader
读取ddl.sql文件,解析成 table
1 | 复制代码interface Reader { |
Writer
template
通过resource文件管理,接收table
输出plantuml格式ER
图
1 | 复制代码interface Writer { |
Main
1 | 复制代码fun main(args: Array<String>) { |
效果
1 | 复制代码java -jar ddl2plantuml.jar ddl.sql er.puml |
程序会读取当前目录下的ddl.sql文件,并转换生成er.puml文件。
1 | 复制代码@startuml |
本文转载自: 掘金