Daha önce yarattığımız ve içine kayıt eklediğimiz database’den bu sefer kayıt güncellemeyi ve silmeyi anlatmaya çalışacağım.

Önce kayıt güncelleme ile başlayalım. Tabloya daha önce eklediğimiz bir kayıt üzerinde değişiklik yapabiliriz. Bu işlem için Android SDK bize güzel bir API sağlıyor. Aşağıda bununla ilgili hazırladığım örneği inceleyebilirsiniz. Açıklamaları comment olarak ekledim.

// Sileceğimiz kayıtları sınırlandırmak için kullandığımız where
// içinde verdiğimiz parametrelerin değerlerini bu şekilde sağlıyoruz.
String[] whereArgs = new String[1];
whereArgs[0] = String.valueOf(outputView.getTag());

// Öncelikle ekleyeceğimiz kaydın içeriğini bir ContentValues
// objesine ekliyoruz.
ContentValues updateValues = new ContentValues();
// Burada ilk parametre tablo sütununun ismi, ikinci ise eklenecek değer.
updateValues.put("completed", "1");

TasksDatabaseHelper dbHelper = null;
SQLiteDatabase db = null;
try {
  // Helper objemizi oluşturuyoruz.
  dbHelper = new TasksDatabaseHelper(this);
  // Kayıt eklemek için kullanacağımızdan yazma destekli bir
  // database bağlantısı açıyoruz.
  db = dbHelper.getWritableDatabase();

  // Tabloya daha önce eklediğimiz kayıtları id'leri yardımı ile
  // siliyoruz.
  // Geriye silinen kayıt sayısı döndürülecektir.
  // Eğer tüm kayıtları silmek isteseydik 2. parametrede "1"
  // yazardık.
  int updatedRowCount = db.update("Task", updateValues, "id == ?", whereArgs);

  // İşlem sonucunu bu şekilde kontrol edebiliriz.
  if (updatedRowCount > 0) {
    Log.d("Task DB", updatedRowCount + " record(s) updated.");
  }
} catch (SQLiteException e) {
  Log.e("Task DB", "Error on updating record(s).", e);
} finally {
  // Yazma işi bittiğinde mutlaka database bağlantısını
  // kapatmalıyız.
  if (null != db) {
    db.close();
  }

  // Helper ile açık kalan tüm bağlantıları kapatabiliriz.
  if (null != dbHelper) {
    dbHelper.close();
  }
}

Kayıt silmek içinde yine benzer şekilde aşağıdaki gibi yapıyoruz.

// Silecegimiz kayitlari sinirlandirmak i￧in kullandigimiz where i￧inde
// verdigimiz parametrelerin degerlerini bu sekilde sagliyoruz.
String[] whereArgs = new String[1];
whereArgs[0] = String.valueOf(outputView.getTag());

TasksDatabaseHelper dbHelper = null;
SQLiteDatabase db = null;
try {
  // Helper objemizi olusturuyoruz.
  dbHelper = new TasksDatabaseHelper(this);
  // Kayit eklemek i￧in kullanacagimizdan yazma destekli bir
  // database baglantisi a￧iyoruz.
  db = dbHelper.getWritableDatabase();

  // Tabloya daha ￶nce ekledigimiz kayitlari id'leri yardimi ile siliyoruz.
  // Geriye silinen kayit sayisi d￶ndrlecektir.
  // Eger tm kayitlari silmek isteseydik 2. parametrede "1" yazardik.
  int deletedRowCount = db.delete("Task", "id == ?", whereArgs);

  // Islem sonucunu bu sekilde kontrol edebiliriz.
  if (deletedRowCount > 0) {
    Log.d("Task DB", deletedRowCount + " record(s) deleted.");
  }
} catch (SQLiteException e) {
  Log.e("Task DB", "Error on deleting record(s).", e);
} finally {
  // Yazma isi bittiginde mutlaka database baglantisini
  // kapatmaliyiz.
  if (null != db) {
    db.close();
  }

  // Helper ile a￧ik kalan tm baglantilari kapatabiliriz.
  if (null != dbHelper) {
    dbHelper.close();
  }
}

Bu şekilde en temel database işlemlerinin tamamını açıklamış oldum.

konuları bu ilk 4 dizide açıklanmış oldu. Android ile database konusunda yazılar eklemeye devam edeceğim. Bu kullanışlı API ile yapabileceğimiz daha pek çok şey var.

Başka bir yazıda görüşmek üzere..