超轻量级国产自主免费数据库建模工具EZDML简介
EZDML是一款国产免费的轻量级数据建模工具,支持ChatGPT辅助设计,具有轻巧、快速、简便而功能强大的特点,可轻松地进行数据库表结构设计,建立界面数据模型,支持通过自定义脚本模板生成测试数据、界面原型和前后端代码文件。
接下来简单介绍下EZDML有哪些功能特点。
直观
——所有设计都围绕模型图展开
上来就是模型图,来去都是表和关系,没有别的套路。
超轻量
——只需要一个可执行文件就可以运行。
其它什么安装文件、DLL动态库、language语言、templates模板都是附加的,可有可无。有同学希望提供绿色版,其实把安装文件目录拷出来就是绿色版了,除了主程序,其它看哪个不顺眼就删哪个。
不过,只有一个程序的话,界面是英文的,所以最好带上languages目录。
当然了,主程序从最开始只有1MB多,到现在12MB(win64版),也是有点肿了。现在再叫超轻量似乎有点过了,不过这也是持续发展、跨平台和支持64位要付出的代价,人家Windows都膨胀好几百倍了(从win31算起的话)。
快速
——纯原生程序,原生CPU寄存器指令,没有中间商赚差价。
基本上从双击桌面图标到打开文件显示模型图只需要一秒,真正的秒出。当然这也是轻量级程序的特点。
话说回来,移植到 lazarus 后,感觉还是比原来 Delphi 版慢了点,要兼容跨平台,牺牲点性能还是值得的。
简单
秉承越简单越好的设计理念,尽量保持工具的精简。
虽然现在功能已经很多,但基本的建模还是简单的。
免费
EZDML一直都是免费,个人商用均免费。
跨平台
EZDML现在是Windows/Linux/Mac OS通吃。感谢Lazarus / FPC,一个跨平台的Delphi7,一份代码到处编译。
说实话,第一次看到EZDML不打折就能在苹果虚拟机里运行时,我还是非常激动的,有点想起了微软那句名言:一切终成现实。
成熟
好歹“开发”十几年了,虽然断断续续的代码也写得不乍地,但该踩的坑都踩得差不多了。
文档有点欠缺,慢慢补起来~
键盘友好
——描述字建表、上下左右加减号操作模型图、复制粘贴表和字段,键盘大有可为。
描述字就是只用键盘创建所有字段,比如输入(其实是粘贴啦)以下内容就可以创建一个测试表:
TestTb 测试表
//这是个测试表
--------
ID PKInc
RID FK //关联到XX表
订单号 I(20)
标题 S(200)
数量 I
单价 F(10,2)
日期 D
Desc 描述
TpNa 类名 String:NCLOB
图标 BL
富文本 S(99999)
是否激活 BO
注释
我自己也是键盘侠,能用Ctrl+C Ctrl+V解决的就尽量不用手敲。
灵活
支持JAVASCRIPT、PASCAL脚本,让程序员掌控一切:遍历模型表字段、批量增删改字段、批量生成代码、批量输出JSON。
可扩展
自从有了脚本引擎,我激动地发现,一切都可以脚本化:
- 生成SQL——用脚本
- 修改生成的SQL——用脚本(接管全局事件)
- 生成代码——用脚本
- 启动JDBC服务——用脚本
- 自定义工具——用脚本
- 自定义表字段属性——用脚本(参数面板)
- 导出Word/Html——用脚本
- 导出markdown——用脚本
扩展性很强,为此我还专门写了篇《EZDML脚本配置说明》(不过估计大部分人都用不上)。
功能强
嗯,词穷了就扯功能了。常规建表加字段加关联关系生成SQL正逆向工程什么的就不讲了,接下来我们看看EZDML都有哪些特色功能。
物理+逻辑视图
就是同时显示物理名称和逻辑名称。
记得以前用其它建模工具时,我就很希望有这么个功能,因为我英文不好,非常需要同时看到中文。十几年前的建模工具几乎都是英文版,老外是不需要这功能的(因为他们英文好啊)。然后自己来写EZDML了,差不多就第一时间把这个功能加上了。
中英文直接对照,感觉好多了。
缩略图
按下F8切换到缩略图,表太多看不过来的时候,缩略图能让你神清气爽。
自动生成关系图
这个是新鲜出炉的功能。很久以来我都有想如何在EZDML里展现一个表的引用关系,因为关联关系是数据建模中极其重要的一环,后来终于想到,可以在表属性里加一个小关系图,把跟这个表相关的所有对象放一起做个小模型图:
这个模型图以当前表为核心呈星形展开,仍然是能做各种操作的,拖动、平移、缩放、选择、复制、导出等。比如模型图默认是缩略图,按F8或点工具栏按钮可切换成全图:
双击模型图的对象,可以弹出其属性:
然后里面的关系图可以继续双击查看。嗯,你可以一直这样玩下去。
查看表数据
查看表属性时,可同时查看表数据,以便维护比对和加深对数据设计的理解。
表数据页默认是隐藏了,需要右键打开或在设置中开启。比如area这个表:
切到“数据”页,可快速预览前25行(前提是已经连上数据库):
查询数据时,可以查询当前记录对应的关联表数据,EZDML会根据关联关系自动生成过滤条件:
点击后会打开一个新窗口,可以看到过滤条件已经拼好了:
然后重点来了,这个窗口里仍然可以右键查询关联记录:
理论上就可以一直玩下去了。
界面原型
EZDML能快速生成列表和表单界面的原型,供开发设计参考。
界面页默认也是隐藏了,需要右键打开或在设置中开启。比如还是area这个表,切到PC电脑界面是这样的:
这个是平板界面:
手机版:
双击可转到查看表单:
点修改进入编辑表单:
界面配置面板中提供了常用的界面属性设置,可多选并进行批量设置:
一些界面控件的展示:
数据生成
提供大量常用的示例数据生成功能:
方便演示和测试:
可设置或添加自己的测试数据集。
导出EXCEL和WORD文档
先在模型图上选择要导出的对象(不选则默认全部),然后执行主菜单“模型|导出”,可选择导出各种类型:
要注意一点是,导出EXCEL时,字段类型是跟模型图视图有关的,模型图上显示逻辑类型时导出EXCEL字段是逻辑类型(如String);模型图显示物理类型时,导出EXCEL的是物理类型(如varchar)。
导出文档的功能大家都有,不过EZDML的特点是导出文档基本上都是用脚本完成的,如有需要可自行修改Templates目录下的各种导出脚本模板。
如果只是需要图像,可以在模型图上右键菜单“复制图像”然后再到需要的地方粘贴,比如下面这图就是复制粘贴的:
生成接口文档
上面操作导出时,如果选择Markdown,则会生成Markdown类型的接口文档,大概预览结果如下图:
接口说明:
JSON格式结果:
生成代码
表属性切到生成页时,可生成各种代码模板。
生成页默认是隐藏的,需要右键打开或在设置中开启。这个是生成Markdown的:
生成Vue列表的:
生成Springboot JPA实体类的:
生成erupt实体类的:
都是脚本模板生成的,可以修改自定义脚本,生成后拷出来用。
批量生成代码
上面说的是单个表生成。如果想同时生成多个表的,可执行主菜单“模型|生成代码”:
这里模板可以是一个脚本模板文件(需要在Templates/_dml_config.INI中配置),也可以是一个文件夹目录(Templates下的所有子目录都会列出来)。
以上图的layuiAdmin目录为例,这个是layui的一个后台管理模板,执行生成:
完成后会启动一个小HTTP服务:
并打开浏览器,显示layuiAdmin界面:
这个模板同时生成了layui、百度Amis、VueElement、Markdown的内容,有兴趣的可以自己试试:
VueElemeAdmin、SpringJpaSwagger和Erupt模板也是生成整个工程的,生成后可以编译运行,详见相关的博客文章,这里不展开了:
批量生成测试数据Insert语句
EZDML 3.36版起支持生成测试数据的insert语句:
支持ChatGPT辅助设计
EZDML 3.51版起支持支持ChatGPT辅助设计,输入要求描述指令就能生成一个模型:
先写到这,其它以后再补。