超轻量级国产自主免费数据库建模工具EZDML简介

1,097 阅读6分钟

今天为EZDML注册了掘金账号,写点介绍内容吧。

EZDML是什么

EZDML是一个超轻量级国产自主免费的数据建模和代码生成的工具软件,可快速的进行数据库表结构设计,建立界面数据模型,支持自定义脚本模板来生成数据、界面原型和代码文件。

上个图:

image.png

这是EZDML自带的商城demo,做后端一看就知道了,嗯,设计表结构的,Power Designer、ER-Win的替代品之又双叕一选择。

这话对,也不对,其实EZDML也可以用于前端。可能现在再说自动生成前后端代码已经是烂大街了,没有都不好意思跟人打招呼了,但自诞生之日起,EZDML就考虑了前后端界面的支持,同时生成数据库和前后端代码是自然而然的。

简单说下历史,EZDML即EzDML,是Easy Data Model Language的意思,历史有点久,大约始于是2006-2009年,当时只是觉得别的如PD太笨重了,年轻气盛自以为是地要自己做个轮子。最开始是用Delphi写着玩,只有win版,慢慢发展出正式的版本,后来转到lazarus开发就有Mac和Linux版了。本人业余时间还会撸点其它代码,不过只有EZDML用的人多点,别的都没留下来。

EZDML有什么特点或特长

  • 超轻量

简单地说,只需要一个可执行文件就可以运行。其它什么安装文件、DLL动态库、language语言、templates模板都是附加的,可有可无。有同学希望提供绿色版,我说你把安装文件目录拷出来就是绿色版了,除了主程序,其它看哪个不顺眼就删哪个。

当然了,主程序从最开始只有1MB多,到现在12MB(win64版),也是有点肿了。现在再叫超轻量似乎有点吹了,不过这也是持续发展、跨平台和支持64位要付出的代价。

放个旧版证明一下,曾经是只有1MB多的:

image.png

  • 描述字快速建表

新建一个文件,右键新建表,切到描述字,输入以下内容:

area 地区
-----
id(ID) PKI
name 名称 String
fullName 全称 S
createDate 创建日期 Date
modifyDate 最后修改日期 D
orders 排序 I
grade 层级 I
treePath 树路径 S
parent_id 上级地区 FKI

image.png

确定,一个表就创建好了:

image.png

双击可查看属性:

image.png

  • 创建外键连接

这个其实不算特长,但不写一下好像缺点啥,撸代码的人生不完整,还是写一下。 再新建一个表,输入以下内容:

member(会员)
--------------------------------------------------------
id(ID)                                PKInteger    //<<关联:users.id>>
name(姓名)                            String(255)
username(用户名)                      String(255)  //<<唯一索引,非空>>
gender(性别)                          Integer
mobile(手机)                          String(255)  //<<唯一索引>>
area_id(地区)                         FKInteger    //<<普通索引>>
phone(电话)                           String(255)
address(地址)                         String(255)
email(E-mail)                         String(255)  //<<唯一索引,非空>>
amount(消费金额)                      Float(29,12) //<<非空>>
balance(余额)                         Float(29,12) //<<非空>>
point(积分)                           Integer      //<<非空>>
birth(出生日期)                       Date
zipCode(邮编)                         String(255)

嗯,显然这段内容不是我手敲的,是从DEMO里复制出来,稍为改了下。

image.png

确定后,我们有两个表了,member表预留了area_id关联字段,但目前没关联:

image.png

先选中主表area,右键菜单“连接”(或点工具栏上A旁边的连接钮),再点从表member(最好同时点中area_id字段),弹出连接框:

image.png

选关联字段area_id,确定,外键创建好了:

image.png

  • 逆向工程和生成数据库

就是导入导出数据库和比对数据库生成升级SQL,这是标准功能,没什么可说的,略。

image.png

数据库连接默认支持MS SQL SERVER、MYSQL、ORACLE(需安装OCI)、SQLITE、PQ。EZDML已经支持JDBC了,如果前面几个连接不够用,那只要JDBC能连上就行了。

image.png

  • 缩略图

按一下F8即可显示(再按一下F8恢复):

image.png

只有两个表的缩略图当然没什么意思,我们看看EZDML自带DEMO文件的吧:

image.png

注意同名表在同一个EZDML文件的不同模型里是自动同步的,比如两个模型图里都有business这个表,对其中一个business的字段进行增删改时,EZDML会自动把另一个的也一起改了。

image.png

这个all是把前面几个模型图里的表全加在一起显示了,从图中能很容易看出来哪些是核心表对象:

image.png

  • 界面设计和测试数据生成

回到刚才那两个表的模型图,选中area表,双击打开属性,切换到界面,默认会显示列表,并自动生成有测试数据示例:

image.png

左上边类别选“表单”,会显示一个表单的界面示例:

image.png

选中name字段,右上方数据生成类型选择“province_cn:省份与直辖市(中国,中文)”,生成的数据会跟着发生变化:

image.png

选中fullName字段,右边数据生成规则输入“中国%FIELD(name)%”,数据更好看了:

image.png

按住Ctrl键选择name fullName和grade三个字段,将它们设置为必填,界面预览会跟随变化:

image.png

其它各种设置就不一一列举了。

  • 脚本

演示下脚本。选中member表,右键运行脚本:

image.png

弹出脚本IDE默认新建了JS的遍历模型DEMO,可直接F9运行,结果是输出所有表字段名称:

image.png

把前面30行删除,中间是一个模板脚本,接着删除24行后的内容,按F9运行,生成一个HTML:

image.png

点新建,重新创建JS的DEMO脚本,删除前面77行,再删除18行后的内容,F9运行,输出当前选中的表(member)的所有属性:

image.png

我们改一下JS,直接遍历对象属性,也是可以的:

image.png

  • 代码生成

看了上面的脚本,再回去看代码生成就简单了,回到主界面,把模型改名为userInfo(用户信息):

image.png

选中member,按F9转到属性,切换到生成页,选择VueElementForm_vue,右边自动生成了一个vue代码:

image.png

脚本位于Templates目录下,有兴趣的同学,可点编辑脚本,看看脚本是怎么写的,这里不展开了:

image.png

点右上角的“用浏览器打开”(html和vue结尾的文件才有这个按钮,预览需要浏览器支持在线下载跨域内容):

image.png

  • 批量生成代码

大部分同学只需要生成代码复制粘贴到项目里,少部分人可能需要批量生成整个项目,这里EZDML也默认提供了几个DEMO。

F9或点右上角切换按钮回到主界面,点那个绿色的运行代码生成按钮,选择VueElemeAdmin模板,点生成:

image.png

按生成配置,生成完成会弹出个命令框,按1安装:

image.png

安装成功按2启动(自己敲npm run dev也一样的,前端的同学应该很熟悉了):

image.png

启动成功自动打开浏览器:

image.png

image.png

批量代码的生成机制,有空可以再专门说下。

好了,内容够长了,今天先到这吧。

附EZDML官网:ezdml.com 下载地址:www.ezdml.com/download_cn…