Je veux savoir que si un objet PreparedStatement est initialisé deux fois comme indiqué dans l'extrait de code ci-dessous et fermé une seule fois dans le bloc finally, ne pourra-t-il pas se fermer? Je ne reçois aucune erreur dans ce code, mais ce sera une meilleure idée d'utiliser 2 readyStatements différents au lieu d'un. Je pense qu'il ne ferme pas le prepareStatement au n ° 1.Instruction préparée initialisée tiwice et fermée une fois
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
ps = conn.prepareStatement(QueryUtil.UPDATE_POLICY_DETAILS); // #1
ps.setInt(1, iCancellationPolicyId);
ps.executeUpdate();
//some code here
ps = conn.prepareStatement(QueryUtil.UPDATE_POLICY_CHARGES); // #2
ps.setInt(1, iCancellationPolicyId);
ps.executeUpdate();
//some code here
} catch (SQLException sqlExp) {
sqlExp.printStackTrace();
LOG.fatal(sqlExp);
} finally {
ps.close();
conn.close();
}
D'accord! Idéalement, la fermeture d'une connexion devrait également fermer l'état préparé. Cela m'a simplement échappé. Mais pour être encore plus sûr de créer des déclarations individuelles est une meilleure idée. Merci beaucoup. –
+ pour avoir pris le temps de lire le code avec les deux yeux. - b.t.w. Pourriez-vous jeter un coup d'oeil à ce http://stackoverflow.com/questions/2842849/help-translating-reflector-deconstruction-into-compilable-code –