gpt4 book ai didi

android - 从android中的sqlite获取空整数

转载 作者:IT王子 更新时间:2023-10-29 06:27:00 25 4
gpt4 key购买 nike

我遇到的问题实际上可能是设计问题,但我正在努力寻找解决方法。

在我的 android 应用程序的 sqlite 数据库中,我有一个名为 Customer 的表。这有大约 40 列各种字符串和 int 数据类型。实际上,这些列中的任何一个都可能为空,也可能不为空。

在我的代码中,我有一个名为 getCustomer() 的函数,它查询数据库中的特定客户,并将数据库中的所有单元格放入 Customer 类,其中包含每列的变量。然后我可以按我的意愿传递那个客户对象。 getCustomer() 函数返回此 Customer 对象。

我的问题是整数可能为空。我熟悉 int 在 java 中如何不能为 null,但是 Integer 如何可以为 null。但我的问题实际上在于 数据库中的单元格 可以为空(例如 null)。

对于字符串列,我只是这样做:

Customer cust = new Customer();
cust.firstName = cursor.getString(0);

如果 cursor.getString(0); 返回空值,则 firstName 变量被赋值为空。漂亮而简单。但是对于一个整数:

Customer cust = new Customer();
cust.daysSinceJoining = cursor.getInt(5);

如果 daysSinceJoining 为 null,上述代码会在运行时崩溃。所以我尝试了以下方法:

Customer cust = new Customer();
if (cursor.getInt(5) != null)
cust.daysSinceJoining = cursor.getInt(5);

但是这会给我一个编译器错误,因为你不能在这样的空比较中使用 int

我怎样才能解决这个问题?当 int 值可能为 null 时,如何从 sqlite 数据库中检索 int?

最佳答案

@sanders 关于 isNull() 的说法是正确的方法,以下是您如何编辑代码以使用它:

Customer cust = new Customer();
if (!cursor.isNull(5))
cust.daysSinceJoining = cursor.getInt(5);

关于android - 从android中的sqlite获取空整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18054182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com