之前在已經介紹了用的github.com/go-sql-driver/mysql 訪問資料庫,不太了解的可以看看之前的文章 實際上,為提高開發效率,一般都會使用一些orm框架,把資料庫層遮蔽,使用者看到的只有物件而無需我們手動做一些轉換,這樣在使用的時候就非常方便。這種操作方式基本上已經成了標準做法。golang也有很多優秀的orm框架,今天就來介紹介紹gorm。
為什麼要使用orm? 為什麼是gorm? gorm 跟其他框架有什麼不一樣?這裡就不在介紹了。直接講用法吧。
連線比較簡單,直接呼叫 gorm.open 傳入資料庫位址即可。gorm支援基本上所有主流的關聯式資料庫,只是連線方式上略有不同,這裡我用的 mysql為例吧。
type product struct
if !db.hastable(&like{}) ).error; err !=nil}
直接通過 db.createtable 就可以建立表了,非常方便,還可以通過 db.set 設定一些額外的表屬性
另外,還有自動同步建立表的方法:
//自動遷移模式
db.automigrate(&product{})
varproduct product
db.first(&product, 1) //
查詢id為1的product
db.first(&product, "
code = ?
", "
ik01001
") //
查詢code為l1212的product
//建立db.create(&product)
構造已給物件,直接呼叫 db.create() 就可以插入一條記錄。不用拼接sql語句,是不是很方便。
//更新 - 更新product的price為2000
db.model(&product).update("
price
", 2000)
簡單物件刪除:
db.delete(&product)
複雜條件的刪除:
if err := db.where(&product).delete(product{}).error; err !=nil
func createproducts(db *gorm.db) err ).error; err !=niltx.commit()
return
nil}
事務的處理也很簡單,用 db.begin() 宣告開啟事務,結束的時候呼叫 tx.commit(),異常的時候呼叫 tx.rollback()
1. 以上就把基本的增刪改查介紹完了,實際使用中還有很多高階的用法,比如關聯查詢,主外來鍵設定等。大家可以看看官方的使用說明:
posted @
2019-04-30 11:00
章為忠 閱讀(
...)
編輯收藏
C C 學習筆記 基礎入門系列(十二)
第一部分 helloworld的起點 第二部分 初探資料型別 一 第三部分 初探資料型別 二 第四部分 認識運算子 一 第五部分 認識運算子 二 第六部分 理清思路,寫好邏輯結構 一 第七部分 理清思路,寫好邏輯結構 二 第八部分 理清思路,寫好邏輯結構 三 第九部分 資料處理神器之陣列 一 第十部...
Golang 入門系列(一)Go環境搭建
go語言的優劣,這裡就不介紹了,下面直接講go 的安裝 安裝go 的時候,安裝程式會自動把相關目錄寫到系統環境。但是如果是zip 的安裝,需要自己手動新增。主要配置以下幾個 當環境變數都配置完成之後,go 就已經安裝完畢了。開啟命令列,執行 go 命令,就可以看到如下的提示了。gopath go 的...
Golang 入門系列(一)Go環境搭建
go語言的優劣,這裡就不介紹了,下面直接講go 的安裝 安裝go 的時候,安裝程式會自動把相關目錄寫到系統環境。但是如果是zip 的安裝,需要自己手動新增。主要配置以下幾個 當環境變數都配置完成之後,go 就已經安裝完畢了。開啟命令列,執行 go 命令,就可以看到如下的提示了。gopath go 的...