Как интегрировать обычную идиому JDBC создания / получения соединения, запроса к базе данных и, возможно, обработки результатов с помощью автоматического управления ресурсами Java 7, оператора try-with-resources? ( Учебник )
До Java 7 обычный шаблон был примерно таким:
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();
}
С Java 7 вы можете перейти на:
try(Connection con = getConnection(); PreparedStatement prep = con.prepareConnection("Update ..."){
...
con.commit();
}
Это закроет Connection
и PreparedStatement
, но как насчет отката? Я не могу добавить предложение catch, содержащее откат, потому что соединение доступно только в блоке try.
Вы все еще определяете соединение вне блока try? Какова наилучшая практика, особенно если используется пул соединений?