0

我有一个查询,它只会返回一项。我可以得到这样的结果

cursorOne.moveToFirst();
    do 
    {
        getID = cursorOne.getString(cursorOne.getColumnIndexOrThrow("_id"));
    }while (cursorOne.moveToNext());

我想知道是否有最快的方法来获取数据,或者这是唯一的方法。

4

2 回答 2

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();
}
于 2013-08-27T15:51:53.870 回答
0

如果您只需要单行中的单个列值,请考虑使用 anSQLiteStatement而不是游标。SQLiteStatement 支持simpleQueryForLong()并且simpleQueryForString()每个都返回一个值。

于 2016-12-30T11:22:51.443 回答