【Golang】Go語言ORM框架快速上手,ORM操做Mysql數據庫示例

【Golang】Go語言ORM框架快速上手,ORM操做Mysql數據庫示例

直接上Github https://github.com/JabinGP/demo-gomysql

說明

代碼有master和gorm兩個分支,master分支用的是xorm,gorm不言而喻。mysql

兩個分支都是簡單的單表查詢,比較便於理解學習框架。git

兩個分支都是隻須要補齊mysql的配置文件,提早建好對應庫,不須要建表就能夠直接跑起來的,便於快速看到效果,具體的啓動方式在README中有解釋。github

使用感覺

具體的就很少說了,都在代碼裏面,也有詳細的註釋,主要講講體驗。

若是你沒有決定用哪一個,信我就選xormsql

單表

兩個框架大同小異,可是我的感受xorm的文檔,以及api的邏輯性上比較順應個人想法(大概就是我猜它會怎麼去暴露api給我用,而後用了以後發現確實是這樣的)。數據庫

Gorm有幾點我以爲不太好用:api

  1. 爲了實現軟刪除,Gorm自帶一個model,官方推薦組合使用struct,可是實際上使用了這個之後,結構體字面量就沒法直接指定id了。。{ID:xxx}會報語法錯誤,若是要嵌套使用{{ID:xx}}就會爆參數不完整的錯誤,這樣在使用結構體指定字段查詢的時候不能直接指定id就很是麻煩,必須先初始化一個結構體,在xxx.ID=xxx指定。
  2. select找不到記錄的時候居然返回了err,這個我以爲不太合理,找不到值怎麼能是錯誤呢。

多表

Gorm

Gorm在個人一個簡易demoiris項目實戰簡易聊天室中使用到,
其中Gorm在另外一個簡單的demo中嘗試使用,Gorm在項目中用到級聯查詢的時候很是難受,翻看了不少遍官方文檔,官方文檔在這一塊說得不是很清楚,也沒有什麼示例,最後是本身不斷嘗試組合實現的。框架

Xorm

因爲尚未使用過Xorm作項目,只是寫了簡單的單表示例,Xorm彷佛也支持級聯查詢,但我更看重的是Xorm在文檔中提供了直接執行SQL的方法,我更傾向於使用原生SQL加傳入結構體指針掃描的形式完成級聯查詢,接下來打算將iris項目實戰簡易聊天室用xorm重構,看看效果後再對本文進行更新,不過我的感受xorm應該是會更好用的。學習

相關文章
相關標籤/搜索