ResultSet
提供返回原始getInt()
的方法int
。是否有可能获得允许Integer
的{{1}}对象?我正在检索的数据库字段可以为空,只要字段为null
,getInt()
就会返回0
。
由于
答案 0 :(得分:42)
只需使用ResultSet#getObject()
检查字段是否为null
。
Integer foo = resultSet.getObject("foo") != null ? resultSet.getInt("foo") : null;
或者,如果您可以保证使用正确的数据库列类型,以便ResultSet#getObject()
确实返回Integer
(因此不是Long
,Short
或{{ 1}}),那么你也可以对它进行类型转换。
Byte
更新:对于Java 1.7 +
Integer foo = (Integer) resultSet.getObject("foo");
答案 1 :(得分:11)
检索值后,您可以检查wasNull
。
报告最后一列读取的值是否为SQL NULL 请注意,您必须首先调用列上的其中一个getter方法以尝试读取其值,然后调用方法wasNull以查看读取的值是否为SQL NULL。
答案 2 :(得分:7)
有一种更简单的方法。只需输入它。如果为null,则为null。如果有效,则它将成为自动装箱对象。
(Integer) resultSet.getObject("foo")