java - SQLite识别长值

标签 java android sqlite

我正在尝试识别 SQLite 列数据类型,但我不知道如何检查列中的数字是 longint,还是 floatdouble

Cursor c;
Object val;
int type = c.getType(i);
if(type == Cursor.FIELD_TYPE_BLOB){
    val = c.getBlob(i);
}else if(type == Cursor.FIELD_TYPE_FLOAT){
    val = c.getFloat(i);
}else if(type == Cursor.FIELD_TYPE_INTEGER){
    val = c.getInt(i);
}else if(type == Cursor.FIELD_TYPE_LONG){ //this here is the problem. "Cursor.FIELD_TYPE_LONG" does not exists
    val = c.getLong(i);
} else if(type == Cursor.FIELD_TYPE_NULL){
    val = null;
}else if(type == Cursor.FIELD_TYPE_STRING){
    val = c.getString(i);
}

最佳答案

SQLite 没有列数据类型;列中的值可以有不同的类型。

作为documentation表明,整数可以存储在 8 个字节中,因此如果您不知道列中的值实际有多大,则必须使用 getLong

float 也是 8 字节值,因此您必须使用 double

关于java - SQLite识别长值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284135/

相关文章:

java - Fernflower 和 IntelliJ IDEA 的 java 反编译器

java - 使用 Guice 从其他库注入(inject)父类

java - Java服务器从MySql数据库获取信息到客户端

java - Android SQLite 数据库更新架构而不丢失数据

java - 接口(interface)、注解继承

android - 数字键盘 Ioinc2

java - 无法将图像放入(显示)Android 项目

java - 基于网络的点对点客户端使用什么技术

ios - Apple ResearchKit : how to extract information from ORKResult? 第一次程序员

java - 我的索引参数不起作用