При работе с JDBC мы часто используем методы getLong, getDouble, getFloat, getShort, getByte, getBoolean для получения значения из ResultSet. Они замечательно работают для колонок с ограничениями NOT NULL, но они возвращают 0 для случаев, когда такого ограничения нет, и в реальности значение равно SQL NULL. Как же нам распознать подобные ситуации? Нам нужно использовать метод wasNull() сразу же после чтения этого значения.
Пример:
1 2 3 4 |
monster.setHealth(resultSet.getLong(n++)); if (resultSet.wasNull()) { monster.setHealth(DEFAULT_MONSTER_HEALTH); } |
Я до этого обычно делал getObject, а потом сравнивал с null. Сегодня только узнал, что можно по-другому.