Android’ de SQLite ile Veritabanı Oluşturma
SQLite kullanımı oldukça rahat olan bir veritabanı kütüphanesidir. SQLite’ ın, Android’ de kullanımını daha iyi anlamak için, bir örnek üzerinden gidelim. CRUD(Create, Read, Update, Delete) işlemlerini tek tek inceleyelim. Öncelikle bir veritabanı oluşturmamız gerekiyor. Ben tüm database işlemlerini tek bir sınıfta gerçekleştirmek istiyorum. Birazdan açıklayacağım tüm kodlar aynı sayfada bulunmaktadır. Öncelikle yeni bir class yaratıyoruz ve SQLiteOpenHelper’ ı extends ediyoruz. Bu durumda classımızda hata ile karşılaşacağız. Daha sonra implements etmemiz gerekiyor. onCreate ve onUpgrade metodları karşımıza geliyor. Şimdilik kodumuz aşağıdaki şekilde olmalı.
public class DataBaseHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Bunları doldurmadan önce hala sorun çözülmediğinden bir şey daha yapmamız gerekmekte. Kırmızı hata ikonuna tıkladığımızda bu kez de constructor metodu gerektiğini görüyoruz.
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
Veritabanımız ile ilgili tanımlamaları yapmalıyız. Kolaylık olması için değişken olarak tutarız veritabanımızın, tablomuzun ve sütunlarımızın adını.
private static final int VERITABANI_VERSION= 1;//En başta 1 olarak kabul edilir.
//Database versionumuz degistiginde buradan guncelleyebiliriz.
private static final String VERITABANI_ISIM= "Veritabanı Adi";//Veritabanı ismimiz.
private static final String TABLE_OGRENCI="Ogrenci";//Tablo adımız olsun.
private static final String OGRENCI_ID = "id";//Değişkenlerimizi tanımlıyoruz.
private static final String OGRENCI_ADI= "isim";
private static final String OGRENCI_SOYADI="soyisim";
Tüm bu işlemlerden sonra veritabanı yaratma kısmına geçebiliriz. Bu kısımda daha önce implements ettiğimizde onCreate methodunu doldurmalıyız. Daha önce herhangi bir platformda database oluşturduysak zaten kodları anlamak çok fazla zorlamaz bizleri. Bir tane sorgu oluşturalım. Bu sorgumuz String tipinde olsun. Tablomuzda otomatik atanacak, int tipinde ve Primary Key görevi gören bir ID, text tipinde de ISIM ve SOYISIM bulunsun. Eğer o alan boş bırakılarak oluşturulmamasını istiyorsak sorgumuza “NOT NULL” ifadesini ekleyebiliriz. SOYISIM ifadesi null iken işlem yapılamasın bizim tablomuzda. Tablo yaratacağımız için sorgumuz şu şekilde oluşturulmalı. “CREATE TABLE tabloAdi (ID INTEGER PRIMARY KEY AUTOINCREMENT, ISIM TEXT, SOYISIM TEXT NOT NULL);” Sql sorgumuzu db.execSQL(sorguAdi); ile de database de bu sorguyu çalıştırmalıyız. Kodumuzun son hali şu şekilde oluşacaktır. Değişkenleri tanımlarken kullandığımız String tipinde ifade ettiğimiz sözcüklerle sorgumuzu yazarsak kodumuz şu şekile bürünecektir.
String CREATE_OGRENCI = "CREATE TABLE "TABLE_OGRENCI"+(" + OGRENCI_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT," + OGRENCI_ADI+ " TEXT," +OGRENCI_SOYADI+" TEXT NOT NULL" + ")"; db.execSQL(CREATE_OGRENCI );
onUpgrade methodu ise daha önce oluşturulmuş veritabanımız için version güncellemesi yapıldıysa çalışır. Bu methodumuz ise şöyle doldurulmalı.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_OGRENCI);
onCreate(db);
}
Böylece yeni sürümdeki veritabanı kullanılabilir kılındı. Veritabanımızı oluşturduk. Bir sonraki yazımda ise sizlere sütunlara değerlerin nasıl ekleneceğini anlatacağım. Sağlıcakla kalın.