15

これらは私のテーブルのIDです:

KEY_ID(autoincremented integer primary key)   KEY_NAME(text)     KEY_PH_NO(text)

1                                             james                   1234567890
2                                             kristein                6484996755
3                                             Roen                    4668798989
4                                             Ashlie                  6897980909

私が知りたいのは、に基づいてこのテーブルから単一のレコードを取得する方法です。このため、このようなメソッドunique(KEY_ID)を構築しました。getContact()

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、すべての属性に対してすべての getter メソッドと setter メソッドを設定したクラスです。

完全なコードを手伝ってください。

4

3 に答える 3

41

これがあなたを助けることができるかどうか見てください..

テーブル名が従業員であると仮定します

public String getEmployeeName(String empNo) {
    Cursor cursor = null;
    String empName = "";
    try {
        cursor = SQLiteDatabaseInstance_.rawQuery("SELECT EmployeeName FROM Employee WHERE EmpNo=?", new String[] {empNo + ""});
        if(cursor.getCount() > 0) {
            cursor.moveToFirst();
            empName = cursor.getString(cursor.getColumnIndex("EmployeeName"));
        }
        return empName;
    }finally {
        cursor.close();
    }
}
于 2012-09-24T11:32:45.790 に答える
11
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 singleContact = database.getContact(id);

次に、連絡先エンティティを呼び出します。getter getPhone(); メソッドがあると仮定します。

Log.d("Phone Number :" , singleContact.getPhone());
于 2014-07-22T19:22:23.913 に答える