可以肯定地说,Android游标仅包含我请求的列,并以与select语句i中相同的顺序返回它们。 e。以下代码将始终有效吗?

Cursor cursor = db.query("NAMES",
    new String[] {"FIRSTNAME", "LASTNAME", "MOBILE"},
    "ID = " + requestedId, null, null, null, null, null);

if (cursor.moveToFirst()) {
    firstname = cursor.getString(0);
    lastname = cursor.getString(1);
    mobile = cursor.getString(2);
}


还是我应该坚持像下面那样显式获取列索引,因为Android SQLite可能会在query()返回的游标中添加一些辅助数据或更改列的顺序?

firstname = cursor.getString(cursor.getColumnIndex("FIRSTNAME"));
lastname = cursor.getString(cursor.getColumnIndex("LASTNAME"));
mobile = cursor.getString(cursor.getColumnIndex("MOBILE"));

最佳答案

可以肯定地说,Android游标仅包含我请求的列,并以与select语句i中相同的顺序返回它们。 e。以下代码将始终有效吗?


是的,很安全。

在引擎盖下,只是SQLiteQueryBuilder进行了哑字符串连接。您可以检查source以了解更多信息。

关于android - Android游标列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28514035/

10-14 12:10