在 Go 中,管理資料庫連線與 database/sql 套件無縫連接。本指南深入概述如何建立 MySQL 連線並在 HTTP 處理程序之間共用它。
main() 函數負責初始化資料庫連線。在這裡,您呼叫 sql.Open(),它會傳回一個連線池句柄,而不是單一連線。此句柄封裝了根據需要提供連接的邏輯,確保資源的高效利用。
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8")
連接池建立後,您可以對其進行配置以滿足應用程式的需求。例如,您可以設定池中的最大空閒連線數:
db.SetMaxIdleConns(100)
要驗證資料庫的可用性,您應該在繼續之前執行ping:
err = db.Ping()
共享連線的關鍵在於讓db 變數成為main() 和HTTP 處理程序都可以存取的全域變數。這確保了所有 goroutine 都可以使用相同的連接池。
var db *sql.DB // global variable to share between main and HTTP handlers
在 HTTP 處理程序中,您可以使用共用連線與資料庫互動。例如,要從「hello」表中擷取資料:
func HomeHandler(w http.ResponseWriter, r *http.Request) { var msg string err := db.QueryRow("SELECT msg FROM hello WHERE page=?", "home").Scan(&msg) if err != nil { fmt.Fprintf(w, "Database Error!") } else { fmt.Fprintf(w, msg) } }
以上是如何跨 Go HTTP 處理程序共用 MySQL 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!