今天为EZDML注册了掘金账号,写点介绍内容吧。
EZDML是什么?
EZDML是一个超轻量级国产自主免费的数据建模和代码生成的工具软件,可快速的进行数据库表结构设计,建立界面数据模型,支持自定义脚本模板来生成数据、界面原型和代码文件。
上个图:
这是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多的:
- 描述字快速建表
新建一个文件,右键新建表,切到描述字,输入以下内容:
area 地区
-----
id(ID) PKI
name 名称 String
fullName 全称 S
createDate 创建日期 Date
modifyDate 最后修改日期 D
orders 排序 I
grade 层级 I
treePath 树路径 S
parent_id 上级地区 FKI
确定,一个表就创建好了:
双击可查看属性:
- 创建外键连接
这个其实不算特长,但不写一下好像缺点啥,撸代码的人生不完整,还是写一下。 再新建一个表,输入以下内容:
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里复制出来,稍为改了下。
确定后,我们有两个表了,member表预留了area_id关联字段,但目前没关联:
先选中主表area,右键菜单“连接”(或点工具栏上A旁边的连接钮),再点从表member(最好同时点中area_id字段),弹出连接框:
选关联字段area_id,确定,外键创建好了:
- 逆向工程和生成数据库
就是导入导出数据库和比对数据库生成升级SQL,这是标准功能,没什么可说的,略。
数据库连接默认支持MS SQL SERVER、MYSQL、ORACLE(需安装OCI)、SQLITE、PQ。EZDML已经支持JDBC了,如果前面几个连接不够用,那只要JDBC能连上就行了。
- 缩略图
按一下F8即可显示(再按一下F8恢复):
只有两个表的缩略图当然没什么意思,我们看看EZDML自带DEMO文件的吧:
注意同名表在同一个EZDML文件的不同模型里是自动同步的,比如两个模型图里都有business这个表,对其中一个business的字段进行增删改时,EZDML会自动把另一个的也一起改了。
这个all是把前面几个模型图里的表全加在一起显示了,从图中能很容易看出来哪些是核心表对象:
- 界面设计和测试数据生成
回到刚才那两个表的模型图,选中area表,双击打开属性,切换到界面,默认会显示列表,并自动生成有测试数据示例:
左上边类别选“表单”,会显示一个表单的界面示例:
选中name字段,右上方数据生成类型选择“province_cn:省份与直辖市(中国,中文)”,生成的数据会跟着发生变化:
选中fullName字段,右边数据生成规则输入“中国%FIELD(name)%”,数据更好看了:
按住Ctrl键选择name fullName和grade三个字段,将它们设置为必填,界面预览会跟随变化:
其它各种设置就不一一列举了。
- 脚本
演示下脚本。选中member表,右键运行脚本:
弹出脚本IDE默认新建了JS的遍历模型DEMO,可直接F9运行,结果是输出所有表字段名称:
把前面30行删除,中间是一个模板脚本,接着删除24行后的内容,按F9运行,生成一个HTML:
点新建,重新创建JS的DEMO脚本,删除前面77行,再删除18行后的内容,F9运行,输出当前选中的表(member)的所有属性:
我们改一下JS,直接遍历对象属性,也是可以的:
- 代码生成
看了上面的脚本,再回去看代码生成就简单了,回到主界面,把模型改名为userInfo(用户信息):
选中member,按F9转到属性,切换到生成页,选择VueElementForm_vue,右边自动生成了一个vue代码:
脚本位于Templates目录下,有兴趣的同学,可点编辑脚本,看看脚本是怎么写的,这里不展开了:
点右上角的“用浏览器打开”(html和vue结尾的文件才有这个按钮,预览需要浏览器支持在线下载跨域内容):
- 批量生成代码
大部分同学只需要生成代码复制粘贴到项目里,少部分人可能需要批量生成整个项目,这里EZDML也默认提供了几个DEMO。
F9或点右上角切换按钮回到主界面,点那个绿色的运行代码生成按钮,选择VueElemeAdmin模板,点生成:
按生成配置,生成完成会弹出个命令框,按1安装:
安装成功按2启动(自己敲npm run dev也一样的,前端的同学应该很熟悉了):
启动成功自动打开浏览器:
批量代码的生成机制,有空可以再专门说下。
好了,内容够长了,今天先到这吧。
附EZDML官网:ezdml.com 下载地址:www.ezdml.com/download_cn…