Maison > base de données > tutoriel mysql > Dois-je fermer les connexions JDBC regroupées ?

Dois-je fermer les connexions JDBC regroupées ?

Mary-Kate Olsen
Libérer: 2024-12-03 22:19:14
original
943 Les gens l'ont consulté

Should I Close Pooled JDBC Connections?

Fermeture des connexions JDBC dans le pool

Question : Les connexions JDBC doivent-elles être fermées lors de l'utilisation d'un pool de connexions ? Si tel est le cas, cela ne va-t-il pas à l'encontre de l'objectif du pooling ?

Réponse : Oui, les connexions poolées doivent être fermées. La fermeture d'une connexion groupée libère la connexion sous-jacente vers le pool.

Le pool de connexions garde une trace des connexions utilisées et de celles qui sont libres. Lorsqu'une connexion est fermée, le pool la reconnaît comme disponible pour réutilisation.

Question : La méthode suivante est-elle adaptée pour obtenir une connexion depuis le pool ou le DriverManager ?

public Connection getConnection(boolean pooledConnection) throws SQLException {
    if (pooledConnection) {
        if (ds == null) {
            try {
                ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat");
                return ds.getConnection();
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
        return (ds == null) ? getConnection(false) : ds.getConnection();
    }
    return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord);
}
Copier après la connexion

Réponse : Le code n'est pas recommandé. Le DataSource doit être initialisé une fois lors du démarrage de l’application plutôt que dans la méthode. De plus, la synchronisation et les vérifications nulles sont inutiles. La méthode doit simplement rechercher la source de données une fois et en renvoyer les connexions de manière cohérente.

Considérations supplémentaires :

  • Fermez toujours les ressources JDBC dans l'ordre inverse lors d'un essai -with-resources ou dans le bloc enfin.
  • Évitez d'utiliser DriverManager pour établir des connexions manuellement si vous utilisez une connexion piscine.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal