如何从结果集中获取Double而不是double?

使用JDBC结果集时,我希望得到Double而不是double,因为此列可以为空。 当列为空时,Rs.getDouble返回0.0。

您可以在ResultSet上检查wasNull以查明该值是否为null

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

如果你之后真的需要Double ,你可以从返回的double创建它。

上述ResultSet#wasNull()的替代方法是在null上测试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

基本上它适用于所有原始类型,首先使用getDoublegetInt等,然后只有当结果为0时才使用wasNull

你可以这样做:

Double d =(Double)resultSet.getObject(“column”);

那么你不必担心它是否为null。