如果列为空,SQLiteCursor 会做啥?
Posted
技术标签:
【中文标题】如果列为空,SQLiteCursor 会做啥?【英文标题】:What will a SQLiteCursor do if a column is null?如果列为空,SQLiteCursor 会做什么? 【发布时间】:2011-12-06 21:15:05 【问题描述】:我想从 SQLite 查询返回的 Cursor 中获取一个整数,但我知道该整数可能为空。不幸的是,我找不到任何允许我检查的 Cursor 方法。
代码将是
mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));
我希望有一个可能的空值,这实际上出于各种原因是可取的——该字段指的是第二个表被修改的时间,并且可以在第二个表之前填充第一个表。不幸的是,Cursor 的文档说是否抛出异常、返回错误值或其他行为取决于实现,而 SQLiteCursor 文档没有说明任何内容。
如果字段为空,这段代码会做什么?有没有办法在调用 getInt() 之前检查这一点?
【问题讨论】:
【参考方案1】:有一个isNull()
-方法,只需预先使用 if 来检测空值。请记住:返回布尔值的方法被命名为 isX()
而不是 getX()
是很常见的,这可能是一些混乱的根源:)
【讨论】:
谢谢!另一个关于在 andorid 中加载和持久化日期的好帖子可以在 here 找到。【参考方案2】:根据我的经验,它返回 0。如果 0 不是可能的答案,那么您只需检查 0。如果它是可能的答案,那么您需要按照 pgsandstrom 的建议进行操作。
【讨论】:
0 是一个可能的答案,因此我需要一个更好的方法;我确实按照@pgsandstrom 的建议做了。以上是关于如果列为空,SQLiteCursor 会做啥?的主要内容,如果未能解决你的问题,请参考以下文章