从ResultSet获取Integer对象

时间:2011-05-04 10:17:00

标签: java jdbc

ResultSet提供返回原始getInt()的方法int。是否有可能获得允许Integer的{​​{1}}对象?我正在检索的数据库字段可以为空,只要字段为nullgetInt()就会返回0

由于

3 个答案:

答案 0 :(得分:42)

只需使用ResultSet#getObject()检查字段是否为null

Integer foo = resultSet.getObject("foo") != null ? resultSet.getInt("foo") : null;

或者,如果您可以保证使用正确的数据库列类型,以便ResultSet#getObject()确实返回Integer(因此不是LongShort或{{ 1}}),那么你也可以对它进行类型转换。

Byte

更新:对于Java 1.7 +

Integer foo = (Integer) resultSet.getObject("foo");

答案 1 :(得分:11)

检索值后,您可以检查wasNull

来自documentation

  

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

答案 2 :(得分:7)

有一种更简单的方法。只需输入它。如果为null,则为null。如果有效,则它将成为自动装箱对象。

(Integer) resultSet.getObject("foo")