Правильный способ использования ресурсов JDBCJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Правильный способ использования ресурсов JDBC

Сообщение Anonymous »

Довольно часто я вижу подобный код даже в Java 7

Код: Выделить всё

Connection c = null;
PreparedStatement s = null;
try {
c = dataSource.getConnection();

String sql = "insert into table (column1, column2) values (?, ?)";
s = c.prepareStatement(sql);
int i = 1;
s.setString(i++, "111");
s.setString(i++, "222");

s.execute();

} catch (SQLException e) {
log.error("failed to insert", e);
} finally {
DbUtils.close(s, c); // closes s and c with no questions
}
Но согласно спецификации, когда соединение закрывается, все операторы и наборы результатов освобождаются.
Я слышал, что драйвер JDBC может не играть по правилам JDBC API, и старый способ лучше. Мой вопрос заключался в том, чтобы услышать мнения по этому поводу. Код выглядит лучше, но что, если он опасен?
Мне кажется, наиболее предпочтительным способом здесь является использование try-with-resources. Это достаточно безопасно?

Подробнее здесь: https://stackoverflow.com/questions/231 ... -resources
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»