Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Berkongsi Sambungan MySQL Merentas Pengendali HTTP Go?

Bagaimana untuk Berkongsi Sambungan MySQL Merentas Pengendali HTTP Go?

Patricia Arquette
Lepaskan: 2024-11-12 21:42:02
asal
1035 orang telah melayarinya

How to Share a MySQL Connection Across Go HTTP Handlers?

Berkongsi Sambungan MySQL dalam Pengendali HTTP Go

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.

Mewujudkan Sambungan

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")
Salin selepas log masuk

Konfigurasi dan Ping

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)
Salin selepas log masuk

Untuk mengesahkan ketersediaan pangkalan data, anda perlu melakukan ping sebelum meneruskan:

err = db.Ping()
Salin selepas log masuk

Berkongsi Sambungan

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
Salin selepas log masuk

Menggunakan Sambungan dalam Pengendali HTTP

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)
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan