Comment intégrer la commune de JDBC idiome de la création et de la réception d'une connexion, l'interrogation de la base de données et éventuellement le traitement des résultats avec Java 7 automatique de la gestion des ressources?
Avant Java 7, le schéma habituel était quelque chose comme ceci:
Connection con = null;
PreparedStatement prep = null;
try{
con = getConnection();
prep = prep.prepareStatement("Update ...");
...
con.commit();
}
catch (SQLException e){
con.rollback();
throw e;
}
finally{
if (prep != null)
prep.close();
if (con != null)
con.close();
}
Avec Java 7, vous pouvez aller pour:
try(Connection con = getConnection(); PreparedStatement prep = con.prepareConnection("Update ..."){
...
con.commit();
}
Cela permet de fermer l' Connection
et de la PreparedStatement
, mais que dire de la restauration? Je ne peux pas ajouter une clause catch contenant de la restauration, parce que la connexion n'est disponible que dans le bloc try.
Avez-vous encore de définir la connexion en dehors du bloc try? Quelle est la meilleure pratique ici, surtout si le regroupement de connexion est utilisé?