Android 游标列
Android cursor columns
可以安全地假设 Android 游标只有我请求的列,并且 returns 它们的顺序与它们在 select 语句中的顺序相同,即。 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"));
Is is safe to assume that Android cursor only has the columns I requested and returns them in the same order as they are in the select statement, i. e. will the following code always work?
是的,很安全。
在幕后,它只是 SQLiteQueryBuilder
进行愚蠢的字符串连接。您可以查看 source 以了解更多信息。
可以安全地假设 Android 游标只有我请求的列,并且 returns 它们的顺序与它们在 select 语句中的顺序相同,即。 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"));
Is is safe to assume that Android cursor only has the columns I requested and returns them in the same order as they are in the select statement, i. e. will the following code always work?
是的,很安全。
在幕后,它只是 SQLiteQueryBuilder
进行愚蠢的字符串连接。您可以查看 source 以了解更多信息。