在 UI 中,您可以在下拉列表中選擇不同的選項(xiàng),這些選項(xiàng)與不同數(shù)據(jù)庫中保存的數(shù)據(jù)相關(guān)。我已經(jīng)為數(shù)據(jù)創(chuàng)建了模型,并且由于數(shù)據(jù)庫之間的表模式是相同的,我想根據(jù)用戶選擇的選項(xiàng)在數(shù)據(jù)庫之間簡單地切換。這在 GORM 2.0 中如何實(shí)現(xiàn)?我寧愿避免在查詢中指定“database.tableName”,因?yàn)槲医?jīng)常使用db.Model(&model).Where...圖案。我想出了一種方法,但我很想看看在 gorm.DB 對(duì)象中是否有一種處理方法(或者更優(yōu)雅!)。當(dāng)前解決方案:在存儲(chǔ)庫中,在執(zhí)行任何數(shù)據(jù)庫操作之前,請(qǐng)使用以下內(nèi)容:r.db.Exec("use " + utils.GetDB())并使用 API 中間件獲取對(duì)下拉列表的任何更改并設(shè)置與所需數(shù)據(jù)庫相關(guān)的全局變量。提前謝謝了。
1 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
在沒有其他答案的情況下,這是我決定使用的解決方案的指南:
var db map[string]*gorm.DB
db = make(map[string]*gorm.DB)
db["db1"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
db["db2"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
db["db3"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
然后在需要時(shí)有一個(gè)函數(shù)來返回所需的數(shù)據(jù)庫名稱,返回您希望使用的實(shí)例。
db[dbname].Table("table1").Select....
- 1 回答
- 0 關(guān)注
- 303 瀏覽
添加回答
舉報(bào)
0/150
提交
取消