Dalam Go, pengurusan sambungan pangkalan data menjadi lancar dengan pakej pangkalan data/sql. Panduan ini memberikan gambaran keseluruhan yang mendalam tentang cara mewujudkan sambungan MySQL dan berkongsinya antara pengendali HTTP anda.
Fungsi utama() bertanggungjawab untuk memulakan sambungan pangkalan data anda . Di sini, anda memanggil sql.Open(), yang mengembalikan pemegang kolam sambungan, bukan satu sambungan. Pemegang ini merangkumi logik untuk menyediakan sambungan seperti yang diperlukan, memastikan penggunaan sumber yang cekap.
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8")
Setelah kumpulan sambungan diwujudkan, anda boleh mengkonfigurasinya untuk memenuhi keperluan aplikasi anda . Sebagai contoh, anda boleh menetapkan bilangan maksimum sambungan melahu dalam kolam:
db.SetMaxIdleConns(100)
Untuk mengesahkan ketersediaan pangkalan data, anda perlu melakukan ping sebelum meneruskan:
err = db.Ping()
Kunci untuk berkongsi sambungan terletak pada menjadikan pembolehubah db pembolehubah global boleh diakses oleh pengendali utama() dan HTTP anda. Ini memastikan bahawa semua goroutine boleh menggunakan kumpulan sambungan yang sama.
var db *sql.DB // global variable to share between main and HTTP handlers
Dalam pengendali HTTP anda, anda boleh berinteraksi dengan pangkalan data menggunakan sambungan dikongsi. Contohnya, untuk mendapatkan semula data daripada jadual "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) } }
Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Sambungan MySQL Merentas Pengendali HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!