我有一个实际上可能是设计问题的问题,但我正在努力寻找解决方法。
在我的 android 应用程序的 sqlite 数据库中,我有一个名为Customer
. 这有大约 40 列各种字符串和 int 数据类型。实际上,这些列中的任何一个都可能为空,也可能不为空。
在我的代码中,我有一个简单地称为 的函数getCustomer()
,它查询数据库中的特定客户,并将数据库中的所有单元格放入一个Customer
类中,该类包含每列的变量。然后,我可以随意传递该客户对象。该getCustomer()
函数返回此Customer
对象。
我的问题是可能为空的整数。我熟悉int
java中如何不能为null,但如何Integer
可以为null。但我的问题实际上在于数据库中的单元格可以为空(例如空)。
对于字符串列,我只是这样做:
Customer cust = new Customer();
cust.firstName = cursor.getString(0);
如果cursor.getString(0);
返回空值,firstName
则为变量分配空值。很好很简单。但是有一个int:
Customer cust = new Customer();
cust.daysSinceJoining = cursor.getInt(5);
daysSinceJoining
如果为空,则上述运行时崩溃。所以我尝试了以下方法:
Customer cust = new Customer();
if (cursor.getInt(5) != null)
cust.daysSinceJoining = cursor.getInt(5);
然而,这给了我一个编译器错误,因为你不能int
在这样的空比较中使用。
我怎样才能解决这个问题?当 int 值可能为空时,如何从 sqlite 数据库中检索 int ?