Chr*_*ght 0 sqlite android nullable
我有一个像这样的Android SQLite表定义:
create table MyTable(..., myDate integer, ...);
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,我查询此表以通过游标检索myDate的值:
long dateInstant = cursor.getLong(cursor.getColumnIndexOrThrow("myDate"));
Run Code Online (Sandbox Code Playgroud)
但是,我想知道这是否是最佳方法.如果未设置该值(即数据库为null),则上述方法返回0,这恰好也是有效值.我需要区分有效值和空值.另外,从javadoc getLong
:
结果以及当列值为null时,此方法是否抛出异常,列类型不是整数类型,或者整数值超出范围[Long.MIN_VALUE,Long.MAX_VALUE]是实现定义的.
这似乎表明,如果我正确地读到这一点,那么在未来的某个时刻,Android中提供的SQLite实现可能会选择抛出异常而不是返回0.我正在寻找跨Android版本的一致解决方案.
简而言之,我如何能够以一种允许我区分有效值和null的方式稳健地处理从列中检索整数数据?
你可以做
long dateInstant = 0; // some value to represent null
if (!cursor.isNull (colIndex))
dateInstance = cursor.getLong (colIndex);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1674 次 |
最近记录: |