Veritabanı üzerinde nasıl işlem yaptığımızı, hangi sırada gittiğimizi ve neyin ne fonksiyonu olduğunu anlamak için, adım adım SQLite işlemlerine bakalım:
- SQLiteOpenHelper Sınıfından Üretilen Bir Sınıf Oluşturmak
public class class_adı extends SQLiteOpenHelper {}
Bu sınıfı extend etmek bize 2 metodu kullanma zorunluluğu getirecektir:
· onCreate(SQLiteDatabase db) : Veritabanı ilk oluşturulduğunda çağrılır. Tabloları, viewları, trigger vb. yapıları bu metot içinde oluştururuz.
· onUpgrade(SQLiteDatabase db, int eskiversiyon, int yeniversiyon): Veritabanı üzerinde herhangi bir değişiklik olduğunda ( Tablo değişimi vb.) çağrılır.
- Sabitleri Tanımlamak
public class class_adı extends SQLiteOpenHelper {
private static final String db_adi = “….” ;
private static final int version=”…” ;
private static final String tablo_adi=”…” ;
//yapıcı (constructor) metot
//onCreate(…) metodu
//onUpgrade(..) metodu }
Burada önemli olan private değeridir. Sabitlere, sadece bu class içerisinden erişilmesine izin verilmesi açısından “private” kullanılmıştır. Aslında, sabitler başka bir dosya içerisinde de tanımlanabilir. Ancak erişilebilir olması önemlidir. Yani, sabitleri başka bir dosya içerisinde tanımladığımızda, bu classımız içinden onlara erişebilmemiz için, private yerine public değeri kullanılmalıdır.
- Constructor (Yapıcı) Metodu Yazmak
public class_adı (Context context ) {
super( context, db_adi, null,version ); }
- onCreate() Metodunu Yazmak ve Tablo Oluşturmak
Tablo oluşturma işlemlerini onCreate() metodu içinde yapıyoruz. Bu metot öncelikle, programı ilk çalıştırdığımızda, entegre SQLite sunucumuz içindeki “sql_master” tablosuna bir sorgu çeker. Bu sorguda “tablo_adi” diye bir tablo mevcut mu diye bakar. Eğer yoksa “tablo_adi” adında bir tablo oluşturur ve o tablo içindeki alanları doldurur.
public void onCreate(SQLiteDatabase db) {
db.execSQL ( “CREATE TABLE” + tablo_adi + “(“ + ….. + “)” ) ; }
- onUpgrade() Metodunu Yazmak
Veritabanında herhangi bir değişiklik olduğunda onUpgrade() metodu çalıştırılır. Daha sonra bunun içerisinden çağrılan onCreate() metodu da değişiklikleri hayata geçirmeye yarar.
public void onUpgrade(SQLiteDatabase db, int eskiversiyon, int yeniversion) {
db.execSQL(“DROP TABLE IF EXISTS” + tablo_adi );
onCreate(db); }
- Veritabanı İşlemleri İçin Gereksinimler
· close() : Veritabanını kapatır.
· getReadableDatabase() : Okunabilir bir veritabanı sunar. Select işlemleri için uygundur.
· getWritableDatabase() : Yazılabilir bir veritabanı sunar. Update, delete ve insert işlemleri için uygundur.
- Queryleri Çalıştırmak
SQLite hem bilinen SQL cümleciklerini (rawQuery) destekler, hem de kendi içinde özelleşmiş sorgulama metotları bulunmaktadır.
db.rawQuery( String sql, String [] selectionArgs) : Bu döndürülen sonucu Cursor tipindeki bir değişkene atar.
· SQLite’ın Özelleşmiş Metotları:
n query(…)
n insert(…)
n delete(…)
n update(…)
- Cursor Kullanımı
Veritabanı nesneleri içinde; kayıtlar arasında, satır bazlı hareket etmemizi sağlayan yapıdır.
Cursor c = new Cursor();
· startManagingCursor(c) : Cursor üzerinde işlemler yapabilmeyi sağlar.
· getCount() : Veritabanındaki kayıt sayısını döndürür.
· moveToFirst() : Cursor, veritabanındaki ilk kayda gider.
· moveToNext(): Cursor, bulunduğu konumdan bir sonraki kayda geçer.
· IsAfterLast() : Son satırdan bir önceki mi sorgulaması yapar.
Bunların dışında, getColumnNames(), getColumnIndex(), getString(), getInt() metotları da kullanılır.
Tüm adımlar bu kadar. Tahmin ediyorum ki kafanızda bişeyler oturmaya başladı ama tam net olmadı. Bir sonraki derste yapılacak örnek ile konunun tam olarak anlaşılacağını umuyorum.
0 yorum:
Yorum Gönder