При работе с набором результатов JDBC я хочу получить Double вместо double, так как этот столбец имеет значение NULL. Rs.getDouble возвращает 0.0, когда столбец имеет значение null.
Как получить Double из набора результатов вместо double?
Ответ 1
Вы можете проверить wasNull на ResultSet, чтобы узнать, было ли это значение null.
Обратите внимание, что сначала вы должны вызвать один из методов getter в столбце, чтобы попытаться прочитать его значение, а затем вызвать метод wasNull, чтобы узнать, было ли прочитанное значение SQL NULL.
Если вам действительно понадобится Double, вы можете создать его из возвращаемого Double.
Ответ 2
Альтернативой вышеупомянутому ResultSet#wasNull() является проверка ResultSet#getObject() на null, чтобы вы могли красиво положить его в один линии в сочетании с тройным оператором:
Double d = resultSet.getObject("column") != null ? resultSet.getDouble("column") : null;
вместо
Double d = resultSet.getDouble("column");
if (resultSet.wasNull()) {
d = null;
}
Ответ 3
Использовать ResultSet.wasNull → http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html#wasNull%28%29
В основном он работает для всех примитивных типов, сначала используйте getDouble, getInt и т.д., а затем только если результат равен 0, вы используете wasNull.
Ответ 4
Вы можете просто сделать:
Двойной d = (Double) resultSet.getObject( "column" );
тогда вам не придется беспокоиться, если оно было нулевым.