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的插件: