286 votes

Jeux de résultats JDBC et déclarations fermons séparément même si la connexion est fermée par la suite ?

Elle est censée être une bonne habitude de fermer toutes les ressources JDBC après utilisation. Mais si j’ai le code suivant, il est nécessaire de fermer le jeu de résultats et de l’instruction ?

La question est si la fermeture de la connexion fait le travail, ou si elle laisse quelques ressources en cours d’utilisation.

224voto

Paul Points 2086

Ce que vous avez fait est parfait et très bonne pratique.

Je dis ses bonnes pratiques... Par exemple, si pour une raison quelconque, vous utilisez un type « primitif » de base de données mise en commun et que vous appelez , la connexion sera retournée à la piscine et le / `` ne sera jamais fermé et ensuite vous rencontrerez de nombreux nouveaux problèmes différents !

Si vous ne pouvez pas toujours compter sur `` pour nettoyer.

J’espère que cette aide  :)

133voto

esperanto Points 423

Java 1.7 rend notre vie beaucoup plus facile grâce à l' instruction try-avec-resources.

Cette syntaxe a encore besoin de beaucoup d’indentation, mais elle est très brève et élégant.

77voto

dogbane Points 85749

À partir de la documentation javadoc:

Lorsqu'un Statement objet est fermé, son courant ResultSet objet, si l'on il existe, est également fermé.

Toutefois, la documentation javadoc sont pas très claire en ce qui concerne l' Statement et ResultSet sont fermés lorsque vous fermez le sous-jacent Connection. Ils ont simplement indiquer que la fermeture d'une Connexion:

Les communiqués de cette Connectionde l'objet base de données et les ressources JDBC immédiatement au lieu d'attendre eux à être libéré automatiquement.

À mon avis, toujours fermer explicitement ResultSets, Statements et Connections quand vous avez fini avec eux que la mise en œuvre de l' close pourrait varier entre les pilotes de base de données.

Vous pouvez vous épargner beaucoup de la chaudière-plaque de code à l'aide de méthodes telles que l' closeQuietly dans DBUtils de Apache.

2voto

La méthode correcte et sûre pour fermer les ressources associées à JDBC ceci (tiré de comment fermer JDBC ressources correctement – chaque fois que) :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X