powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как достать null из ResultSet?
7 сообщений из 7, страница 1 из 1
Как достать null из ResultSet?
    #33366208
Ivan Doev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица с полем типа INTEGER, значение может быть (а может и не быть) равно NULL.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
PreparedStatement stmt = connection.prepareStatement("SELECT nullable_int FROM table1 WHERE id=?");
stmt.setInt( 1 , id);
ResultSet rs = stmt.executeQuery();
 if  (!rs.next())
     return   null ;
MyBean myBean =  new  MyBean();
myBean.setNullableInt(rs.get?????);
 return  myBean;
...

как быть?
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366281
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)
Код: plaintext
ResultSet.wasNull();
2)
Код: plaintext
SELECT nvl(nullable_int, -BIG_INTEGER) ...
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366426
Ivan Doev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL NULLs должны быть видны как java null. Соответственно использование примитивов в бине исключено. Я так понимаю, при наличии N nullable полей схема сводится к следующей:

Код: plaintext
1.
2.
3.
4.
5.
 int  i = rs.getInt("nullable_int");
 if  (rs.wasNull())
    myBean.setNullableInt( new  Integer(i));
 else 
    myBean.setNullableInt( null );

все то же самое для каждого nullable поля.
Геморрой получается.
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366440
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DoevSQL NULLs должны быть видны как java null. Соответственно использование примитивов в бине исключено. Я так понимаю, при наличии N nullable полей схема сводится к следующей:

Код: plaintext
1.
2.
3.
4.
5.
 int  i = rs.getInt("nullable_int");
 if  (rs.wasNull())
    myBean.setNullableInt( new  Integer(i));
 else 
    myBean.setNullableInt( null );

все то же самое для каждого nullable поля.
Геморрой получается.
наоборот только if/else
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366636
Ivan Doev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был неправ, вспылил, исправлюсь!
И все-таки я надеялся что кто-нибудь скажет, что все гораздо проще и делается одной строчкой кода...:)

З.Ы.: Почему бы не иметь в ResultSet метод getInteger() к примеру...
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366684
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DoevЗ.Ы.: Почему бы не иметь в ResultSet метод getInteger() к примеру...по спецификации.

PS других способов нет. getInteger() ты можешь написать сам.

Код: plaintext
1.
2.
3.
4.
 public   static  Integer getInteger(ResultSet rs, String fieldName)  throws  ..{
   int  i = rs.getInt(fieldName);
   return  rs.wasNull() ?  null  :  new  Integer(i);
}
...
Рейтинг: 0 / 0
Как достать null из ResultSet?
    #33366806
У ResultSet есть метод getObject, который возвращает null для SQL NULL-ов:

поэтому можно так:
Код: plaintext
1.
2.
Number num = (Number)rs.getObject("nullable_int");
myBean.setNullableInt(num);

или так, если myBean.setNullableInt требует Integer, а не Number:

Код: plaintext
1.
2.
Number num = (Number)rs.getObject("nullable_int");
myBean.setNullableInt(num ==  null  ?  null  :  new  Integer(num.intValue()));
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как достать null из ResultSet?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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