如何从结果集中获得双倍而不是双倍?

2022-09-01 20:12:41

使用 JDBC 结果集时,我希望获得 Double 而不是 double,因为此列是可为 null 的。Rs.getDouble 在列为 null 时返回 0.0。


答案 1

您可以在 ResultSet 上检查 wasNull,以确定该值是否为 。null

请注意,必须首先调用列上的一个 getter 方法以尝试读取其值,然后调用该方法 wasNull 以查看读取的值是否为 SQL NULL。

如果您确实需要之后,可以从返回的创建它。Doubledouble


答案 2

上述方法的替代方法是测试 ResultSet#getObject(), 以便您可以很好地将其与三元运算符组合放在一行中:ResultSet#wasNull()null

Double d = resultSet.getObject("column") != null ? resultSet.getDouble("column") : null;

而不是

Double d = resultSet.getDouble("column");
if (resultSet.wasNull()) {
    d = null;
}

推荐