3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
在 go 中,您通常使用 Open(至少在您的數(shù)據(jù)庫(kù)訪問(wèn)包中是全局的)初始化一個(gè)全局 *DB 結(jié)構(gòu)。這不會(huì)打開(kāi)與數(shù)據(jù)庫(kù)的實(shí)際連接,而是創(chuàng)建一個(gè)連接池。因此,它應(yīng)該只有一個(gè)實(shí)例。您可以在包的 init 中對(duì)其進(jìn)行初始化。
請(qǐng)參閱 http://go-database-sql.org/ 或 https://www.vividcortex.com/blog/2015/01/14/the-ultimate-guide-to-building-database-driven-apps-with-去/ 一個(gè)很好的介紹指南。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
是的,這是一個(gè)很好的方法。當(dāng)您閱讀 go 文檔時(shí),它會(huì)清楚地告訴您
關(guān)閉 DB 很少見(jiàn),因?yàn)?DB 句柄是長(zhǎng)期存在的,并在許多 go 例程之間共享。
Go 維護(hù)自己的空閑連接池。因此,應(yīng)該只調(diào)用一次 Open 函數(shù)。很少需要關(guān)閉數(shù)據(jù)庫(kù)。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
根據(jù)經(jīng)驗(yàn),我認(rèn)為以這種方式使用數(shù)據(jù)庫(kù)連接不是一個(gè)好習(xí)慣,您應(yīng)該將其私有化,并根據(jù)需要打開(kāi)/關(guān)閉它:)
但是,如果它有效并且您喜歡它,那么這樣做并沒(méi)有錯(cuò)。
- 3 回答
- 0 關(guān)注
- 262 瀏覽
添加回答
舉報(bào)