Java 7 Automatique de Gestion de la Ressource JDBC (try-with-resources déclaration)

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 gestion des ressources, le try-with-resources déclaration? (Tutoriel)

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 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é?

  • Je viens juste de ne pas utiliser un auto-près dans ces situations. Comme le terme l'indique déjà c'est juste pour la fermeture de ressources. Btw: le fait de placer la connexion à l'extérieur de la try... bloc n'aide pas que vous ne pouvez pas rollback après le bloc try que la connexion est déjà fermé.
  • Double Possible de stackoverflow.com/questions/8066501/...
  • Non ce n'est pas un doublon. C'est ici sur con.rollback().
InformationsquelleAutor TPete | 2012-02-13