2 回答
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
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
- 2 回答
- 0 關(guān)注
- 257 瀏覽
添加回答
舉報(bào)
