项目源码地址: github.com/wangyuheng/…
背景
利用plantuml绘制架构评审图时,发现数据库ER图手写字段信息成本太大,需要一个把DB表结构转换为plantuml格式的工具。
搜索了一番,没有发现支持工具,所以准备手撸一个,并记录下设计及编码实现的过程。
需求
一句话需求: 读取数据库表结构,转换为plantuml格式的ER图。
设计
根据需求抽象出下列概念
基础元素(一个输入一个输出)
ER->plantuml格式er图db_schema-> 数据库结构,ddl语句是其中一种实现形式
扩展概念
table-> 表结构信息template-> 模板,定义er图输出格式
操作行为
reader-> 读取数据库结构,识别tableparser-> 根据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 |
本文转载自: 掘金