三、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...