我有一个查询&它只会返回一个项目。我可以得到像这样的结果
cursorOne.moveToFirst();
do
{
getID = cursorOne.getString(cursorOne.getColumnIndexOrThrow("_id"));
}while (cursorOne.moveToNext());
我想知道有没有最快的方法来获取数据,或者这是唯一的方法。
答案 0 :(得分:0)
查询时使用投影,因此您只返回所需的列
String[] projection = new String[] { "_id" }; //specify columns you want to return
Cursor cursorOne = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);
在获得结果时,如果只返回一行,则不需要执行do / while。
try {
if (cursorOne.moveToFirst()) {
getID = cursorOne.getString(0); //no need to look up column index since you already know it due to the projection used
}
} finally {
cursorOne.close();
}
答案 1 :(得分:0)
如果您只需要单行中的单个列值,请考虑使用SQLiteStatement
而不是游标。 SQLiteStatement支持simpleQueryForLong()
和simpleQueryForString()
,每个都返回一个值。