Golang 入門系列(十二)ORM框架gorm

2021-09-20 12:40:24 字數 1640 閱讀 2264

之前在已經介紹了用的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{})

var

product 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 !=nil 

tx.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 的...