Maison > Java > javaDidacticiel > le corps du texte

Dois-je fermer les ResultSets et les instructions avant de fermer une connexion dans JDBC ?

Linda Hamilton
Libérer: 2024-11-13 05:39:02
original
906 Les gens l'ont consulté

Do I Need to Close ResultSets and Statements Before Closing a Connection in JDBC?

Meilleures pratiques JDBC : ordre fermé des ensembles de résultats, des instructions et des connexions

Il est crucial de respecter une bonne gestion des ressources JDBC pour des performances optimales de la base de données . Bien que la fermeture de la connexion après utilisation soit généralement recommandée, une question courante se pose concernant la nécessité de fermer séparément les ResultSets et les Statements.

Question :

Étant donné l'extrait de code ci-dessous, est-il nécessaire de fermer explicitement le ResultSet et l'instruction avant de fermer la connexion ?

Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
    conn = // Retrieve connection
    stmt = conn.prepareStatement(// Some SQL);
    rs = stmt.executeQuery();
} catch(Exception e) {
    // Error Handling
} finally {
    try { if (rs != null) rs.close(); } catch (Exception e) {};
    try { if (stmt != null) stmt.close(); } catch (Exception e) {};
    try { if (conn != null) conn.close(); } catch (Exception e) {};
}
Copier après la connexion

Réponse :

L'exemple de code que vous avez fourni démontre une pratique impeccable. Bien que la fermeture de la connexion soit essentielle, elle ne suffit pas à garantir la libération de toutes les ressources.

La fermeture de la connexion ne ferme pas automatiquement les ResultSets ou les Statements. Si un mécanisme primitif de regroupement de bases de données est utilisé et que connection.close() est appelé, la connexion sera renvoyée au pool, laissant derrière elle les ResultSets et les instructions non fermés. Cela peut entraîner des fuites de ressources et des problèmes potentiels.

Par conséquent, il est impératif de fermer les ResultSets, les Statements et les Connections dans l'ordre indiqué dans votre extrait de code. Cela garantit la bonne libération de toutes les ressources JDBC et évite les fuites de mémoire.

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