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

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

在 Go 中將 sqlx.DB 轉(zhuǎn)換為 sql.DB

在 Go 中將 sqlx.DB 轉(zhuǎn)換為 sql.DB

Go
夢(mèng)里花落0921 2022-06-13 10:50:35
將類(lèi)型sqlx.DB(jmoiron/sqlx) 轉(zhuǎn)換為sql.DB(database/sql) 的最佳方法是什么?我目前正在使用該包github.com/golang-migrate/migrate,它需要一個(gè)現(xiàn)有的連接來(lái)遵循sql.DB接口。func Migrate(db *sqlx.DB) error {    driver, err := postgres.WithInstance(db, &postgres.Config{})    m, err := migrate.NewWithDatabaseInstance(        "file://src/db/migrations",        "postgres", driver)    if err != nil {        return err    }    return m.Up()}更新:我混合了描述并添加了更多細(xì)節(jié)。標(biāo)題是正確的。
查看完整描述

2 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用 sqlx 的方法將sql.DB(這是一個(gè)結(jié)構(gòu),而不是接口)轉(zhuǎn)換為:代碼sqlx.DBNewDb


此方法需要您*sql.DB以及驅(qū)動(dòng)程序名稱(chēng)作為字符串。


這是一個(gè)使用“mysql”作為驅(qū)動(dòng)程序的示例:


var myDb *sql.DB


...


anSqlxDb := sqlx.NewDb(myDb, "mysql") // returns *sqlx.DB

編輯:要添加評(píng)論中提出的新問(wèn)題的答案,也可以反過(guò)來(lái)并*sql.DB從*sqlx.DB.


該*sqlx.DB結(jié)構(gòu)包含一個(gè)嵌入的*sql.DB(代碼)。作為嵌入式結(jié)構(gòu),可以使用其類(lèi)型名稱(chēng) ( DB) 檢索它:


var mySqlxDb *sqlx.DB


...


var anSqlDb := mySqlxDb.DB


查看完整回答
反對(duì) 回復(fù) 2022-06-13
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

在文檔中


sqlx.DB 是 sql.DB 的包裝器,它在打開(kāi)時(shí)跟蹤驅(qū)動(dòng)程序名稱(chēng),主要用于使用正確的綁定變量自動(dòng)綁定命名查詢(xún)。


所以你可以這樣做


db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")

sqlDB := db.DB // sqlDB is *sql.DB


查看完整回答
反對(duì) 回復(fù) 2022-06-13
  • 2 回答
  • 0 關(guān)注
  • 257 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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