powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрывать ли ResultSet между executeQuery ?
15 сообщений из 15, страница 1 из 1
Закрывать ли ResultSet между executeQuery ?
    #38831691
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно ли закрывать ResultSet между executeQuer'ями?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
rs = ps.executeQuery(sql);
...
// выборка
...
rs.close(); // ннннада?
rs = ps.executeQuery("SELECT FOUND_ROWS()");
...
//закрытие всех ресурсов
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831696
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да.
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831720
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В finally!
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831725
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм, мнения несколько разделились
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831739
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java.sql.ResultSet :A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results .Таким образом: в finally - обязательно, при повторных вызовах executeQuery - избыточно.
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831762
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже нашел это

можно конечно и в finaly не закрывать, если написано when the Statement object that generated it is closed , но это при условии, что Statement закроется успешно

но так как нет гарантии, что Statement всегда будет успешно закрыт, то получается нужно закрывать явно
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831764
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так то оно так, но эклипс говорит, что Resource leak: 'rs' is not closed at this location , если закомментировать закрытие rs между executeQuery
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831780
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174хм, мнения несколько разделилисьиспользовать try-with-resource и забыть про close()
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831793
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usmanиспользовать try-with-resource и забыть про close()Это и есть "в finally"
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831838
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закрывать ResultSet это ближе к специфике JDBC чем к конкретным реализациям драйвера.
В скобках ... в методе close() может даже ничего не быть.
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831845
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovUsmanиспользовать try-with-resource и забыть про close()Это и есть "в finally"
Неа. В блоке try с ресурсами приседаний делается больше, по сравнению с обычным вызовом close() в блоке finally.
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38831897
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при использовании try-with-resources эклипс не ругается на незакрытый rs между executeQuery
и оракловцы в туториалах не помещают rs в try-with-resources и не закрывают, пожалуй и я так буду делать
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38832035
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут описано, как правильно http://habrahabr.ru/post/178405/
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38832048
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkНеа. В блоке try с ресурсами приседаний делается больше, по сравнению с обычным вызовом close() в блоке finally.Эти приседания делает компилятор и, насколько я помню, он не делает ничего такого, чего нельзя сделать руками. Так что, всё-таки, "в finally".
...
Рейтинг: 0 / 0
Закрывать ли ResultSet между executeQuery ?
    #38832081
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovavp.mkНеа. В блоке try с ресурсами приседаний делается больше, по сравнению с обычным вызовом close() в блоке finally.Эти приседания делает компилятор и, насколько я помню, он не делает ничего такого, чего нельзя сделать руками. Так что, всё-таки, "в finally".
да, только если правилно всё делать в finally, то там тоже придётся вставлять блок try...
..или делать проверки на null. и огород получается ещё тот.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Закрывать ли ResultSet между executeQuery ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]