我目前正在学习android SQLite数据库编程。在这里阅读这教程的时候。我碰到了一段代码,
getContact()
// Getting single contact
public Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
// return contact
return contact;
}我的问题
问题1如果此代码返回查询,
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);为什么我们要将光标移到这一行的第一行?
cursor.moveToFirst();问题2
这个代码是做什么的?
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));我看了官方文件,但还是不明白。有人能用一个简单的例子来解释吗?
发布于 2014-12-06 16:57:42
问题1:因为光标最初是在第一行元素之前设置的。问题2:它从行中获取字符串(在游标对象中设置为current ),从具有0、1和2号的列(每行由列组成)获取字符串,然后使用它们创建contact对象。
https://stackoverflow.com/questions/27333979
复制相似问题