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