从数据库中检索信息

时间:2016-03-24 05:52:12

标签: android sqlite

我发现本教程http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/,作者使用此代码从数据库中检索信息:

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;
    }

有人可以解释一下这段代码是什么意思:

Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                    cursor.getString(1), cursor.getString(2));

3 个答案:

答案 0 :(得分:1)

通过传递ID,姓名和电话号码来创建联系人对象。 此方法通过匹配作为参数传递的id来从数据库中获取该特定联系行。

答案 1 :(得分:1)

联系人是一个 POJO 类,有三个属性

int _id;
String _name;
String _phone_number;

该行只是实例化Contact类,其构造函数有三个参数用于初始化它的字段。

最后cursor.getString(0)表示从cursor对象中检索所请求列的值为String。参数0是一个表示列索引的整数。

答案 2 :(得分:1)

Contact是作者创建的模型类。我猜测联系人模型有3个字段。一个int表示名称和电话号码的id和字符串。

代码行只是创建一个模型类的新对象,其中按顺序从数据库中获取详细信息。 Contact类如下

public class Contact{

    int id;
    String phoneNumber,name;

  void Contact(id,phoneNumber,name){
     this.id=id;
     this.phoneNumber=phoneNumber;
     this.name=name;
   }
 }