Db.Close() doit-il être appelé dans Go ?
Lors de l'utilisation du package base de données/sql dans Go, on peut se poser des questions la nécessité d'appeler manuellement db.Close(). Cet article explorera les implications de la fermeture de la connexion à la base de données et fournira une solution pour une fermeture explicite.
Comprendre les connexions à la base de données
Le package base de données/sql maintient un pool de connexions inactives. connexions à la base de données pour optimiser les interactions avec la base de données. Par conséquent, appeler db.Open() suffit généralement pour l'initialisation de la base de données.
Comportement par défaut des connexions à la base de données
Par défaut, les connexions ouvertes à la base de données sont automatiquement fermées à la fermeture du programme. ou lorsque l'objet DB est hors de portée. Par conséquent, dans la plupart des scénarios, il n'est pas nécessaire d'appeler manuellement db.Close().
Fermeture explicite des connexions à la base de données
Cependant, si vous le souhaitez, une fermeture explicite de la base de données peut être obtenue en exporter une fonction CloseDB() dans le package responsable de la gestion de la base de données. Cela permet un meilleur contrôle sur la résiliation de la connexion à la base de données.
Utilisation dans l'exemple
Considérez l'exemple suivant dans lequel le package d'application gère la base de données connexions :
App.go
// Setup initializes the database connection. func Setup() { d, err := sql.Open("sqlite3", "./foo.db") if err != nil { panic(err) } db = d } // GetDB returns a reference to the database. func GetDB() *sql.DB { return db } // CloseDB closes the database connection. func CloseDB() error { return db.Close() }
main.go
// Main function initializes and handles server requests. func main() { app.Setup() defer app.CloseDB() // Handle HTTP requests using the database connection. // Exit the program, closing the database connection. }
Conclusion
Bien qu'il ne soit pas obligatoire de appelez manuellement db.Close() dans Go, cette approche fournit un contrôle explicite sur la terminaison de la connexion à la base de données, ce qui peut être utile dans certains scénarios. Cependant, il est important de comprendre que les connexions aux bases de données sont généralement fermées automatiquement à la sortie du programme.
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!