Хотя это не устраняет логику настройки и разрыва, я часто предпочитаю этот стиль, чтобы сделать взаимодействие JDBC более приятным:
Statement statement = connection.createStatement();
try {
ResultSet results = statement.executeQuery(...);
try {
while (results.next()) {
//handle rows
}
} finally {
results.close();
}
} finally {
statement.close();
}
Вложив блоки try
, вы автоматически гарантируете, что и для results
, и для statement
будут вызываться методы close()
без обращения к операторам try
/ catch
в вашем блоке finally
. Кроме того, запуская блоки try
сразу после получения ваших объектов, вам не нужно беспокоиться о проверке значений null
(если, конечно, connection.createStatement()
или statement.executeQuery(...
) не возвращает null
- В в этом случае у вас есть большие проблемы).