Подтвердить что ты не робот

Как получить Double из набора результатов вместо double?

При работе с набором результатов JDBC я хочу получить Double вместо double, так как этот столбец имеет значение NULL. Rs.getDouble возвращает 0.0, когда столбец имеет значение null.

4b9b3361

Ответ 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" );

тогда вам не придется беспокоиться, если оно было нулевым.