gorm使用和例項封裝

2021-08-20 14:20:03 字數 2094 閱讀 4021

三、gorm資料庫連線例項封裝

// 建立

db.create(&product)

// 讀取

var product product

db.first(&product,1) // 查詢id為1的product

db.first(&product, "code = ?", "l1212") // 查詢code為l1212的product

// 更新 - 更新product的price為2000

db.model(&product).update("price",2000)

// 刪除 - 刪除product

db.delete(&product)

}連線mysql為例

* 資料庫連線操作庫

* 基於gorm封裝開發

*/type mysqlconnectipool struct

var instance *mysqlconnectipool

var once sync.once

var db *gorm.db

var err_db error

func getinstance() *mysqlconnectipool

})return instance}/*

* @fuc 初始化資料庫連線(可在mail()適當位置呼叫)

*/func (m *mysqlconnectipool) initdatapool() (issucc bool)

//關閉資料庫,db會被多個goroutine共享,可以不呼叫

// defer db.close()

return

true}/*

* @fuc 對外獲取資料庫連線物件db

* @fuc 獲取使用者資訊

* @user gorm對應的使用者資訊模型

* @dec 此方法為我為請求處理資料訪問的封裝類的方法,不細說

*/func (r *usermemoryrepository) select(userid string) (usermodels.user, error) , errors.new("查詢失敗")

}return user_ret, nil

}

封裝 實戰gorm

gorm以物件導向的編碼方式對資料庫讀寫操作進行了封裝,將每乙個資料實體當作乙個結構體 類 進行處理。本片文章從實際開發中所遇問題和新的需求,對gorm進行一次封裝,以此加快開發速度。首先介紹 架構 component db.go model.go test.go include container...

GORM 開發例項

用 hql 的方式,這種方式好處是可以新增 distinct transactional readonly true compiledynamic collection listvlogofallsubspecials int offset 0,int max 10 用 criteria 的方式,這...

gorm快速使用

模型 為表中的字段,記得欄位名開頭大寫 type patient struct 此例為postgresql func main 不重新建立複數結尾的表,還是原來的表,可以利用原表中的結構,資料 db.singulartable true defer db.close 建立 patient db.cr...