Кажется, что каждый раз, когда я хочу, чтобы выполнить запрос дб, я должен написать следующее:Удалить шаблонного из БД код
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
try {
conn = dataSource.getConnection();
stmt = conn.prepareStatement(sql);
// ...set stmt params
rset = stmt.executeQuery();
while(rset.next()) {
// Do something interesting
}
} finally {
try { if (rset != null) rset.close(); } catch(SQLException e) { }
try { if (stmt != null) stmt.close(); } catch(SQLException e) { }
try { if (conn != null) conn.close(); } catch(SQLException e) { }
}
Является ли это действительно лучший способ сделать это? Есть ли способ хотя бы уменьшить часть беспорядка?
Отредактировано: см. Некоторые комментарии, этот код был не длинным достаточно.
Кстати, перед закрытием вы должны проверить каждое значение null. –
@Robert - не то, что это хорошо, и я согласен, что нулевая проверка должна быть добавлена, но исключение NullPointerException будет обнаружено в блоке уловов (вместе с OutOfMemoryError и всеми другими исключениями rumtime, которые могут произойти). –
Если вы собираетесь сделать код JDBC самостоятельно, стоит написать класс JDBCUtils, который имеет методы safeClose для каждого класса JDBC. Эти методы должны проверять значение null и catch/log SQLException. –