从Java ResultSet检查null int值

问题:

在Java中,我试图从ResultSet中测试一个空值,其中列被转换为基本的int类型。

int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
  if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
    iVal = rs.getInt("ID_PARENT");
  }
}

从上面的代码片段,是否有更好的方法来做到这一点,我假设第二个wasNull()测试是多余的?
教育我们,谢谢

回答:

字段值为NULLResultSet.getInt的默认值是返回0,这也是您的iVal声明的默认值。在这种情况下,您的测试是完全冗余的。
如果你真的想做一些不同的事情,如果字段值为NULL,我建议:

int iVal = 0;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
    iVal = rs.getInt("ID_PARENT");
    if (rs.wasNull()) {
        // handle NULL field value
    }
}

(编辑为下面的@martin评论;编写的OP代码将不会编译,因为iVal未初始化)

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Checking for a null int value from a Java ResultSet

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 58 = 66