Получить одну строку из таблицы
Это идентификаторы в моей таблице:
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 для всех атрибутов.
Пожалуйста, помогите с полным кодом.
Ответы
Ответ 1
Посмотрите, может ли это помочь вам.
Предполагая, что ваше имя таблицы - Employee
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();
}
}
Ответ 2
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;
}
Предполагая, что у вас есть Entity Class для контакта, и затем вы просто называете его своим методом выше.
Contact singleContact = database.getContact(id);
затем вызовите контактную сущность, Im предполагает, что у вас есть метод getter getPhone();
Log.d("Phone Number :" , singleContact.getPhone());
Ответ 3
Попробуйте это
cursor.moveToPosition(position);
cursor.getString(listaTarefas1.getColumnIndex("Item"))