powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / проверка закрытия конекшна
13 сообщений из 13, страница 1 из 1
проверка закрытия конекшна
    #34362959
newj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
собственно, что лучше для Connection в finally писать:
Код: plaintext
1.
2.
3.
4.
   
              if (conn!= null ){
                    conn.close();
                }
или
Код: plaintext
1.
2.
3.
                 if (!conn.isClosed()){
                    conn.close();
                }
есть ли к.н. разница?
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34363075
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть!
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34363144
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, ведь первый вариант не зря придумали. Если у тебя получение connection нагнется (читай вылезет исключение), то conn будет null и в блоке finally ты ещё в нагрузку получишь NPE.
Второй вариант я не особо помню для чего нужен.
А вообще есть достаточно стандартные утилиты позволяющие не заморачиватся на такой ерунде. Jakarta Commons DB utils и Spring JDBC.
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34363696
newj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНу, ведь первый вариант не зря придумали. Если у тебя получение connection нагнется (читай вылезет исключение), то conn будет null и в блоке finally ты ещё в нагрузку получишь NPE.
Второй вариант я не особо помню для чего нужен.
А вообще есть достаточно стандартные утилиты позволяющие не заморачиватся на такой ерунде. Jakarta Commons DB utils и Spring JDBC.

с другой стороны проще самому поставить проверку чем искать,изучать,выкачивать мелкие либы не включенные в стандартный набор и добавлять потом в проект, чтоб вместо
Код: plaintext
1.
2.
3.
              if (conn!= null ){
                    conn.close();
                }
воткнуть
Код: plaintext
1.
 DbUtils.close(conn); 

З.Ы. кто-то рассказывал про картинку на презинтухе
"волны с названиями всяких технологий и тонущий в них корабь "
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34363848
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newjЗ.Ы. кто-то рассказывал про картинку на презинтухе
"волны с названиями всяких технологий и тонущий в них корабь "
Не путай божий дар с яичницей.
Spring JDBC (либо что то подобное) существенно упрощает действия по работе с JDBC, скрывая рутинные операции о которых можно забыть. Типа автокомплита в IDE.
Нет никаких навороченных технологий, все просто.
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34364040
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newjсобственно, что лучше для Connection в finally писать:
Код: plaintext
1.
2.
3.
4.
   
              if (conn!= null ){
                    conn.close();
                }
или
Код: plaintext
1.
2.
3.
                 if (!conn.isClosed()){
                    conn.close();
                }
есть ли к.н. разница?

компромис :)

Код: plaintext
1.
 if (onn!= null  && !conn.isClosed())conn.close();
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34364122
Shkel Eugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для понимания разницы, нужен весь код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Connection con =  null ;
 try  {
  con =  new  Connection();
  ...
}  catch  (Exception e) {
 ...
}
 if (conn!= null ) {
  conn.close();
}

это правильно, потому-что может быть ситуация, когда исключение было в конструкторе Connection и объект не создался

второй вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 try  {
Connection con =   new  Connection();
...
 if (!conn.isClosed()){
  conn.close();
}
}  catch  (Exception e) {
 ...
}

здесь смысла проверять на null нет. Т.е. каждый вариант по своему прав(обработку ошибок пока не учитываем)

Мне больше нравитсья
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Connection con =  null ;
 try  {
  con =  new  Connection();
  ...
}  catch  (Exception e) {
 ...
}  finally  {
 if (conn!= null  && !conn.isClosed()) {
  conn.close();
}
}
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34364164
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shkel Eugeneдля понимания разницы, нужен весь код
Мне больше нравитсья

? Так первые два варианта банально не жизнеспособные по причине отсутствия finally
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34364329
Shkel Eugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shkel Eugene Т.е. каждый вариант по своему прав(обработку ошибок пока не учитываем)
Читать внимательно!!! Прежде чем задавать провакационные вопросы. Мой вариант нравится МНЕ, хотя и в нем есть свои недостатки.
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34365533
newj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timm newjЗ.Ы. кто-то рассказывал про картинку на презинтухе
"волны с названиями всяких технологий и тонущий в них корабь "
Не путай божий дар с яичницей.
Spring JDBC (либо что то подобное) существенно упрощает действия по работе с JDBC, скрывая рутинные операции о которых можно забыть. Типа автокомплита в IDE.
Нет никаких навороченных технологий, все просто.

ну вы посмотрите скоко всего в Java! а теперь перечислите мне, что там дар, а, что омлет!думаю у каждого будет свой список.и если кто-то не пользуется спрингом обходясь EJB,портлетми и всяческими иными фреймворками то спрашивается нафига ему Spring JDBC кто бы, что о нем не говорил. тот же подход можно отнести, и к DButils и к прочему никак не связаному с JDBC!

2Shkel Eugene мысль понята,а это главное.

з.ы. всме спасибо
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34366197
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newjа теперь перечислите мне, что там дар, а, что омлет!думаю у каждого будет свой список.и если кто-то не пользуется спрингом обходясь EJB,портлетми и всяческими иными фреймворками то спрашивается нафига ему Spring JDBC кто бы, что о нем не говорил. тот же подход можно отнести, и к DButils и к прочему никак не связаному с JDBC!


Spring-jdbc можно скачать и использовать отдельным jar файлом. У него зависимость только на Spring DAO, который к теме имеет прямое отношение.
Ничего другого тянуть не обязательно. А чего здесь Вас на всякеи EJB с портлетами понесло, вот это действительно не понятно.
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34366643
newj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz newjа теперь перечислите мне, что там дар, а, что омлет!думаю у каждого будет свой список.и если кто-то не пользуется спрингом обходясь EJB,портлетми и всяческими иными фреймворками то спрашивается нафига ему Spring JDBC кто бы, что о нем не говорил. тот же подход можно отнести, и к DButils и к прочему никак не связаному с JDBC!


Spring-jdbc можно скачать и использовать отдельным jar файлом. У него зависимость только на Spring DAO, который к теме имеет прямое отношение.
Ничего другого тянуть не обязательно. А чего здесь Вас на всякеи EJB с портлетами понесло, вот это действительно не понятно.

я хотел сказать
что если у меня уже есть DButils зачем мне Spring-jdbc? или еще к.н. хрень для jdbc
и если я использую уже некие фреймоврки то зачем мне еще и спринг.
зачем мне альтернативный вид транспорта если у меня уже есть авто с личным водилой?
надеюсь на этот раз ход мысли ясен...


...я привык что меня не понимают((..
...
Рейтинг: 0 / 0
проверка закрытия конекшна
    #34366723
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newj Blazkowicz newjа теперь перечислите мне, что там дар, а, что омлет!думаю у каждого будет свой список.и если кто-то не пользуется спрингом обходясь EJB,портлетми и всяческими иными фреймворками то спрашивается нафига ему Spring JDBC кто бы, что о нем не говорил. тот же подход можно отнести, и к DButils и к прочему никак не связаному с JDBC!


Spring-jdbc можно скачать и использовать отдельным jar файлом. У него зависимость только на Spring DAO, который к теме имеет прямое отношение.
Ничего другого тянуть не обязательно. А чего здесь Вас на всякеи EJB с портлетами понесло, вот это действительно не понятно.

я хотел сказать
что если у меня уже есть DButils зачем мне Spring-jdbc? или еще к.н. хрень для jdbc
и если я использую уже некие фреймоврки то зачем мне еще и спринг.
зачем мне альтернативный вид транспорта если у меня уже есть авто с личным водилой?
надеюсь на этот раз ход мысли ясен...


...я привык что меня не понимают((..
Если он тебе не нужен - не пользуйся. Никто не заставляет.
Вот только ты указываешь в коде close() (у коннекшна, стейтмента, резалтсета), а я нет. Ты используешь try/finally везде где есть работа с JDBC, а я - там где мне это нужно.
Зачем дублировать код если можно делегировать эти функции кому то другому?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / проверка закрытия конекшна
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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