Ma’lumotlar bazasidan ma’lumotlarni o’qish.
Ma'lumotlar bazasidan o'qish query()uchun o'zingizning tanlov mezonlari va kerakli ustunlarni topshirib , usuldan foydalaning . Usul elementlarni birlashtiradi insert() va update()ustunlar ro'yxatidan tashqari siz kiritmoqchi bo'lgan ma'lumotlarni ("proyeksiya") aniqlaydi, aksincha kiritish uchun ma'lumotlar emas. So'rov natijalari sizga Cursorob'ektda qaytariladi .
SQLiteDatabase db = dbHelper.getReadableDatabase();
// Define a projection that specifies which columns from the database
// you will actually use after this query.
String[] projection = {
BaseColumns._ID,
FeedEntry.COLUMN_NAME_TITLE,
FeedEntry.COLUMN_NAME_SUBTITLE
};
// Filter results WHERE "title" = 'My Title'
String selection = FeedEntry.COLUMN_NAME_TITLE + " = ?";
String[] selectionArgs = { "My Title" };
// How you want the results sorted in the resulting Cursor
String sortOrder =
FeedEntry.COLUMN_NAME_SUBTITLE + " DESC";
Cursor cursor = db.query(
FeedEntry.TABLE_NAME, // The table to query
projection, // The array of columns to return (pass null to get all)
selection, // The columns for the WHERE clause
selectionArgs, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
sortOrder // The sort order
);
Uchinchi va to'rtinchi argumentlar ( selectionva selectionArgs) WHERE bandini yaratish uchun birlashtirilgan. Argumentlar tanlov so'rovidan alohida berilganligi sababli, ularni birlashtirishdan oldin qochib qutulishadi. Bu sizning tanlov bayonotlaringizni SQL in'ektsiyasidan himoya qiladi. Barcha argumentlar haqida batafsil ma'lumot uchun ma'lumotnomaga qarang query().
Kursorda qatorni ko'rish uchun Cursorqiymatlarni o'qishni boshlashdan oldin har doim qo'ng'iroq qilishingiz kerak bo'lgan harakatlanish usullaridan birini qo'llang . Kursor -1 holatidan boshlanganligi sababli, qo'ng'iroq moveToNext()natijalardagi birinchi yozuvga "o'qish pozitsiyasini" qo'yadi va natija to'plamidagi oxirgi yozuvdan o'tib ketmaganligini qaytaradi. Har bir satr uchun, bir chaqirilib bir ustun qiymatini o'qishingiz mumkin Cursorkabi Ishga usullari, getString()yoki getLong(). Ishga usullari har biri uchun, siz qo'ng'iroq orqali olishingiz mumkin siz orzu ustun, katalog o'rnini o'tishi kerak getColumnIndex()yoki getColumnIndexOrThrow(). Natijalar bo'yicha takrorlashni tugatgandan so'ng, close()uning resurslarini bo'shatish uchun kursorni chaqiring . Masalan, kursorda saqlangan barcha element identifikatorlarini qanday olish va ularni ro'yxatga qo'shish haqida quyida keltirilgan:
List itemIds = new ArrayList<>();
while(cursor.moveToNext()) {
long itemId = cursor.getLong(
cursor.getColumnIndexOrThrow(FeedEntry._ID));
itemIds.add(itemId);
}
cursor.close();
Do'stlaringiz bilan baham: |