2016-03-30 36 views
0

我猜sqlite表中的整数空值不等于Java中的0。那么我该如何检查int I是否从我的表格中提取出来Sqlite Integer null == java int 0

if(resultSet.getInt(columnNumber) != 0){ 
     System.out.println("int is not null"); 
    } 

是不是空?我不想使用sqlite约束“IS NOT NULL”。

+0

一个简单的方法要弄明白这一点,就是调试你的程序,看看resultSet.getInt(columnNumber)在值为空时返回的结果。 –

+0

你可以使用'resultSet.getObject' –

+0

感谢你们俩! – mollwitz

回答

0

这一切都取决于什么这种方法是这样做的:resultSet.getInt(...)

如果getInt返回一个原始的整数,则不能为null,但如果是这样的Integer类的一个对象,那么你需要检查nullabilty做一个正常的检查,如:resultSet.getInt(...)!= null,然后过之后肯定是OT空检查,如果不为零:

resultSet.getInt(...)!=0 

例子:

if(resultSet.getInt(columnNumber) != null){ 
    if(resultSet.getInt(columnNumber) != 0){ 
     System.out.println("int is not zero"); 
    } else { 
     System.out.println("int is zero"); 
    } 
}else{ 
    System.out.println("int is null"); 
} 
+0

非常感谢! – mollwitz

+0

有一个常见的['ResultSet'](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html)接口,他的实现不太可能不实现所以'getInt'返回'int'。 – Tom