Heim > Artikel > Backend-Entwicklung > Wie teile ich eine MySQL-Verbindung mit Go-HTTP-Handlern?
In Go erfolgt die Verwaltung von Datenbankverbindungen nahtlos mit dem Datenbank-/SQL-Paket. Diese Anleitung bietet einen detaillierten Überblick darüber, wie Sie eine MySQL-Verbindung herstellen und diese mit Ihren HTTP-Handlern teilen.
Die Funktion main() ist für die Initialisierung Ihrer Datenbankverbindung verantwortlich . Hier rufen Sie sql.Open() auf, das ein Verbindungspool-Handle zurückgibt, nicht eine einzelne Verbindung. Dieses Handle kapselt die Logik für die Bereitstellung von Verbindungen nach Bedarf und sorgt so für eine effiziente Ressourcennutzung.
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8")
Sobald der Verbindungspool eingerichtet ist, können Sie ihn entsprechend den Anforderungen Ihrer Anwendung konfigurieren . Sie können beispielsweise die maximale Anzahl inaktiver Verbindungen im Pool festlegen:
db.SetMaxIdleConns(100)
Um die Verfügbarkeit der Datenbank zu überprüfen, sollten Sie einen Ping durchführen, bevor Sie fortfahren:
err = db.Ping()
Der Schlüssel zum Teilen der Verbindung liegt darin, die Datenbankvariable zu einer globalen Variablen zu machen, auf die sowohl main() als auch Ihre HTTP-Handler zugreifen können. Dadurch wird sichergestellt, dass alle Goroutinen denselben Verbindungspool nutzen können.
var db *sql.DB // global variable to share between main and HTTP handlers
In Ihren HTTP-Handlern können Sie über die gemeinsame Verbindung mit der Datenbank interagieren. Um beispielsweise Daten aus der „Hallo“-Tabelle abzurufen:
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) } }
Das obige ist der detaillierte Inhalt vonWie teile ich eine MySQL-Verbindung mit Go-HTTP-Handlern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!