29 Kasım 2017 Çarşamba

Cursor Sınıfı

constructor
SQLiteDatabase sınıfının rawQuery() metodu bu sınıfı döndürür. İçerdiği değerlere sütun sütun erişiriz. Şöyle yaparız.
String selectQuery = "SELECT  * FROM ...";
SQLiteDatabase db = ...;
Cursor cursor = db.rawQuery(selectQuery, null);
close metodu
Ger cursor mutlaka kapatılmak zorundadır. Şöyle yaparız.
cursor.close();
getBlob metodu
Sütuna byte[] olarak erişmemizi sağlar. Şöyle yaparız.
byte[] image = cursor.getBlob(0);
getColumnIndex metodu
Belirtilen string'in hangi sütunda olduğunu döndürür. Şöyle yaparız.
cursor.getColumnIndex("country_name")
getColumnIndexOrThrow metodu
Belirtilen string'in hangi sütunda olduğunu döndürür veya exception atar. Şöyle yaparız.
int index = cursor.getColumnIndexOrThrow("country_name");
getCount metodu
Şöyle yaparız.
if(cursor.getCount() > 0) {...}
getInt metodu
Belirtilen sütun değerine string olarak erişmemizi sağlar. Şöyle yaparız.
cursor.getInt(0)
getString metodu
Belirtilen sütun değerine string olarak erişmemizi sağlar. Şöyle yaparız.
cursor.getString(1)
isAfterLast metodu
Şöyle yaparız.
Cursor cursor = ...;
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
  ...
  cursor.moveToNext();
}
moveToFirst metodu
Cursor ilk satıra getirilir. Şöyle yaparız.
Cursor cursor = ...
if (cursor.moveToFirst()) {...}
Eğer sorgu sonucu boş ise cursor nesnesi null gelebiliyor. Bu yüzden şöyle yapmakta fayda var.
if (cursor != null && cursor.moveToFirst()) {...}
Ya da şöyle yaparız.

Cursor cursor = ...;
if(cursor.getcount() > 0)
  cursor.moveToFirst();
Şöyle kullanan kodlar var ama ben sevmiyorum.
if (cursor.moveToFirst()) {
  do {
    ...
  } while (cursor.moveToNext());
}
moveToLast metod
Cursor en son satıra getirilir. Şöyle yaparız.
for (cursor.moveToLast();  !cursor.isBeforeFirst();  cursor.moveToPrevious()){
  ...
}
moveToNext metodu
Bir sonraki satırın olup olmadığını belirtir. Iterator'deki hasNext ile aynıdır. Şöyle yaparız.
if (cursor.moveToNext()) {...}
Döngü içinde satırları yürümemizi sağlar.
while (cursor.moveToNext()) {...}

Hiç yorum yok:

Yorum Gönder