go語言gorm使用

2021-09-10 07:30:30 字數 1807 閱讀 3068

var jsondata map[string]inte***ce{}//全域性變數:存放配置檔案的map物件

func initjson()

configstr := string(bytes[:])

reg := regexp.mustcompile(`/\*.*\*/`)

configstr = reg.replaceallstring(configstr, "")

bytes = byte(configstr)

if err := json.unmarshal(bytes, &jsondata); err != nil

fmt.println("success to ",jsondata["database"])

}type dbconfig struct

// 1.dbconfig 資料庫相關配置

var dbconfig dbconfig

func initdb() ))//將database json物件賦值給dbconfig結構體

portstr := fmt.sprintf("%d", dbconfig.port)

url := ":@tcp(:)/?charset=&parsetime=true&loc=local"//定義乙個url

url = strings.replace(url, "", dbconfig.database, -1)//n<0替換所有匹配的,將dbconfig中的物件替換帶該url中

url = strings.replace(url, "", dbconfig.user, -1)

url = strings.replace(url, "", dbconfig.password, -1)

url = strings.replace(url, "", dbconfig.host, -1)

url = strings.replace(url, "", portstr, -1)

url = strings.replace(url, "", dbconfig.charset, -1)

fmt.println(url)

dbconfig.url = url//再將url返回進該配置檔案

}func init()

func init()  

if config.dbconfig.sqllog

db.db().setmaxidleconns(config.dbconfig.maxidleconns)

db.db().setmaxopenconns(config.dbconfig.maxopenconns)

model.db=db

}

3 . 簡單查詢

func main()
可以在具體的controller層或者service層進行查詢操作

也可以將dao層操作封裝到具體方法內

func  get(id uint)  cart
然後在main中呼叫

func main()   //可以封裝成查詢cond物件

get := model.get(7)

fmt.println("openid=",cart.openid)

}

但是這樣有個問題,由於go中沒有物件調方法的概念,這裡不存在dao物件,無法顯性的表示是哪個dao執行get方法,而是直接通過包名(model)+公開方法(get),所有貌似封裝也沒什麼意義

go 語言 gorm 增刪改查

使用 orm 工具,通常少許鹽在 中定義模型 models 與資料庫中的資料表進行對映,在 ormb 中模型 models 通常是正常的結構體 基本的 go 型別或他們的指標,同時也支援 sql.scanner 與 driver.valuer 介面 inte ces 為了方便模型,gorm 內建乙個...

go使用gorm訪問資料庫

drivertype 資料庫驅動 type drivertype int const mysql drivertype iota 0 mssql 1 oracle 2 sqllite 3 postgresql 4 func d drivertype string string dbconfig 資料...

gorm快速使用

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