Android Studio SQLite Giriş

Android Studio’da artık veritabanı kısmına gireceğiz. Ekleme, Güncelleme, Kayıt getirme gibi tüm işlemleri farklı kısımlarda anlatmayı düşünüyorum. Hadi SQLite’a başlayalım.

Öncelikle SQLite Nedir?

SQLite Android içine gömülü Açık Kaynak Kodlu bir veritabanıdır. SQLite standart ilişkisel veritabanı özelliklerini (SQL sytanx, transaction ve statementları) desteklemektedir. Buna ek olarak çalışması için ayrılması gerekli olan bellek kapasitesi de çok azdır (yaklaşık 250 KByte).

SQLite integer, text ve real data tiplerini desteklemektedir. Bunların dışındaki veri türlerini veritabanına kaydetmek için bu tiplerden birine dönüştürülmesi gerekmektedir. Bu konuda daha fazla bilgiye http://www.sqlite.org/ adresinden ulaşabilirsiniz.

Android’te SQLite?

SQLite bütün Android cihazlarda bulunmaktadır. Android’te SQLite veritabanını kullanmak için herhangi bir kurulum veya konfigürasyon yapmanıza gerek yoktur. Sadece yapmanız gereken create ve update SQL metodlarını tanımlanamızdır, bundan sonrasını Android platformu otomatik olarak veritabanıyla konuşacaktır.

SQLite veritabanına erişim dosya sistemine ulaşmak gibidir ve yavaş olabilir. Bundan dolayı AsyncTask sınıfını projenizde barındırarak işlemleri asekron bir şekilde yapmanız performans açısından faydalı olacaktır.

Android’te uygulamanız bir veritabanı oluşturuyorsa bu default olarak DATA/data/APP_NAME/databases/FILENAME  olarak yer alacaktır.

SQLite Mimarisi

Package lar; android.database package veritabanları ile çalışmak için tüm genel sınıfları içerir. android.database.sqlite SQLite a ait spesifik sınıfları içermektedir.

SQLiteOpenHelper; Android uygulamasında create ve update veritabanı methodları için genellikle SQLiteOpenHelper sınıfı kullanılmaktadır. Bu subclassta super() methodu kullanarak veritabanı adı ve veritabanı versiyonu belirtilir. (Örn;  super(context, DATABASE_NAME, null, DATABASE_VERSION);)

Bu sınıfta onCreate() ve onUpgrade() methodlarını override etmek gerekmektedir. onCreate() methodunda veritabanı yoksa oluşturulması sağlanır. onUpgrade() methodunda ise veritabanı versiyonunda güncelleme varsa, veritabanı şemasının güncellenmesi sağlanır.

SQLiteOpenHelper sınıfı getReadableDatabase() ve getWriteableDatabase() methodları ile SQLiteDatabase objelerinde okuma ya da yazma işlemini yapmayı sağlar.

Veritabanı tablolarında tablonun primary key tanımlaması için _id standart şekilde kullanılmaktadır. Çoğu Android fonksiyonları bu standartı içermektedir.

SQLiteDatabase; SQLiteDatabase SQLite veritabanı ile çalışmak için temel sınıftır. Veritabanı işlemlerinde insert, update ve delete methodlarını sağlar. Buna ek olarak, SQLiteDatabase execSQL() methodunu da sağlar. Bu method SQL statement ın direk çalıştırılmasına izin verir.

ContentValues nesnesi key ve value tanımlamayı sağlar. Key tablodaki sütunun tanımlanmasını, value de tablodaki o sütundaki içeriği temsil eder. ContentValues ile insert ve update methodları kullanılabilir.

Queryler rawQuery() ve query() methodları ya da SQLiteQueryBuilder sınıfı ile oluşturulabilir. rawQuery() methodu direk SQL select statement ını girdi olarak kabul eder. query() methodu SQL sorgusu için yapısal bir arayüz sağlar.

Cursor; Cursor nesnesi bir sorgunun sonucunu temsil eder. Bütün veriyi hafıza yüklenmesine gerek olmadığı için etkili bir şekilde uygulamanın çalışmasını sağlar. Sorgu sonucundaki elementlerin sayısını öğrenmek için getCount() methodu kullanılır. Veriler arasında geçiş içinde moveToFirst() ve moveToNext() methodları kullanılır. isAfterLast() methodu ise sorgunun sonuna ulaşıp ulaşılmadığını kontrol etmek için kullanılır.

ListView, ListActivity ve SimpleCourseAdapter; ListViewler veri sonuçlarını gösterebilmeyi sağlar. ListActivity ler ise ListView lerin kullanımını kolaylaştıran aktivitelerdir. ListView ler ve veritabanları ile çalışabilmek için SimpleCursorAdapter ı kullanabiliriz.

Post Author: umiitkose

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">