第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

GORM - 運(yùn)行時(shí)的 Golang 更改數(shù)據(jù)庫

GORM - 運(yùn)行時(shí)的 Golang 更改數(shù)據(jù)庫

Go
UYOU 2022-11-08 15:50:43
在 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....


查看完整回答
反對(duì) 回復(fù) 2022-11-08
  • 1 回答
  • 0 關(guān)注
  • 303 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)