Dans Go, la gestion des connexions à la base de données est rendue transparente grâce au package base de données/sql. Ce guide fournit un aperçu détaillé de la façon d'établir une connexion MySQL et de la partager entre vos gestionnaires HTTP.
La fonction main() est responsable de l'initialisation de votre connexion à la base de données. . Ici, vous appelez sql.Open(), qui renvoie un handle de pool de connexions, pas une seule connexion. Ce handle encapsule la logique permettant de fournir des connexions selon les besoins, garantissant une utilisation efficace des ressources.
db, err := sql.Open("mysql", "root:@/mydb?charset=utf8")
Une fois le pool de connexions établi, vous pouvez le configurer pour répondre aux besoins de votre application. . Par exemple, vous pouvez définir le nombre maximum de connexions inactives dans le pool :
db.SetMaxIdleConns(100)
Pour vérifier la disponibilité de la base de données, vous devez effectuer un ping avant de continuer :
err = db.Ping()
La clé du partage de la connexion réside dans le fait de faire de la variable db une variable globale accessible à la fois à main() et à vos gestionnaires HTTP. Cela garantit que toutes les goroutines peuvent utiliser le même pool de connexions.
var db *sql.DB // global variable to share between main and HTTP handlers
Au sein de vos gestionnaires HTTP, vous pouvez interagir avec la base de données en utilisant la connexion partagée. Par exemple, pour récupérer les données de la table "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) } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!