Orm框架介绍
由于我工作上都用到了,为了提高工作效率 我写了一个mac端工具帮助快速生成Dbmodel代码
工具上传到百度网盘,下载地址
链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww
提取码:ljx2
这款工具我是用微软的xamarin.mac技术开发的,驻留在menubar上如下图所示
工具截图:
目前有2个tab。
Image是自动上传剪贴板的图片工具
Image是监听剪切板有没有复制图片,有的话自动把图片上传到服务器,并且生成一个 markdown的图片并且赋值到剪贴板,可以直接在写markdown的时候粘贴,是方便写markdwon插入截图小功能!
OrmGen是我今天给大家介绍的功能
支持的数据库有
- Mysql
- Sqlserver
使用方法很简单,在工具内填写json 点击 Gen 按钮即可
Ktorm的Json内容模板:
{
"Type": "Mysql",
"OutPutFolder": "/Users/yuzd/Downloads/ConsoleApp4/ConsoleApp4",
"IsKotlin": true,
"NamespaceName": "DbModel",
"ConnectionString": "Server=localhost;Port=53306;Database=antmgr;Uid=root;Pwd=123456;charset=utf8;SslMode=none",
"TableFilter": []
}
Ktorm生成的Json字段说明
字段 | 说明 |
---|---|
Type | 支持 mysql 和 sqlserver (sqlserver的话支持在后面指定版本号:sqlserver2000, sqlserver2005,sqlserver2008,sqlserver2012,sqlserver2017,如果不指定的话 sqlserver = sqlserver2008) |
OutPutFolder | 生成的代码保存在本机的哪个文件夹(如果你使用idea插件的话可以使用相对路径) |
IsKotlin | 需要设置为true |
NamespaceName | 指定 package 名称 |
ConnectionString | db连接字符串 |
TableFilter | 表名称的string数组,如果指定了只会生成特定的表的代码 |
Ktorm生成的代码如下:
AntOrm的Json 内容模板:
{
"Type": "Mysql",
"OutFileName": "DbModels",
"OutPutFolder": "/Users/yuzd/Downloads/ConsoleApp4/ConsoleApp4",
"IsKotlin": false,
"NamespaceName": "DbModel",
"BaseEntityClass": "",
"DataContextName": "AntEntity",
"EntitySuffix": "",
"AssociationPrefix": "",
"AssociationAppendByFieldName": true,
"GenerateAssociations": true,
"ConnectionString": "Server=localhost;Port=53306;Database=antmgr;Uid=root;Pwd=123456;charset=utf8;SslMode=none",
"PerClassPerFile": false,
"TableFilter": [],
"SetFkList": [],
"UsingList": [],
"SetColumnTypeList": []
}
AntOrm生成的Json字段说明
字段 | 说明 |
---|---|
Type | 支持 mysql 和 sqlserver (sqlserver的话支持在后面指定版本号:sqlserver2000, sqlserver2005,sqlserver2008,sqlserver2012,sqlserver2017,如果不指定的话 sqlserver = sqlserver2008) |
OutFileName | 若没有指定一个表生成一个class的话,最终会生成一个cs文件,这个字段就是指定cs文件的名称 |
OutPutFolder | 生成的代码保存在本机的哪个文件夹(如果你使用idea插件的话可以使用相对路径) |
IsKotlin | 需要设置为false |
NamespaceName | 指定 NamespaceName 名称 |
BaseEntityClass | 如果想要生成的dbmodel 的 class都继承一个特殊的父类可以用这个字段 |
DataContextName | 指定聚合类的名称 为空的话默认使用db名称 |
EntitySuffix | 如果想要生成的dbmodel的class名称都加一个特定的名称后缀可以使用 |
AssociationPrefix | 指定外键字段的前缀 |
AssociationAppendByFieldName | 指定外键字段名称生成规则要包含原字段和外键字段名称 |
GenerateAssociations | 开启生成外键 |
ConnectionString | db连接字符串 |
PerClassPerFile | 是否开启一个表一个class |
TableFilter | 表名称的string数组,如果指定了只会生成特定的表的代码 |
SetFkList | 非物理的方式指定外键关系 格式: A表名称,A表字段,B表名称,B表字段,外键关系(OneToOne,OneToMany,ManyToOne) 例如 "good_category,GoodTid,goods,Tid,OneToOne" |
UsingList | 指定using关系 |
SetColumnTypeList | 指定某个字段为一个enum类型的时候用到,格式为 table.filedName=xxxxxx 例如:"person.Gender=GenderEnum" |
为了更加方便使用以上小工具我已经封装成了一个idea的插件: