Android Depolama Yöntemleri : SQLite

Aybüke Fırat
2 min readSep 29, 2022

--

Herkese Merhaba!

Yepyeni bir Android yazısıyla yeniden aranızdayım. Bu sefer konumuz SQLite.

Android Studio üzerinde SQLite veri tabanını iki farklı şekilde kullanabiliriz. Bunlardan ilki yazılımsal olarak veri tabanını oluşturmak ikincisi ise hazır oluşturulmuş veri tabanlarını kullanmak. Bugün yazımızda yazılımsal olarak veri tabanlarını nasıl oluşturacağımızı öğreneceğiz.

Android stüdyomuzu açıyoruz ve yeni bir proje oluşturuyoruz. Projemizi isimlendirelim. Ben bu aşamada ‘SQLiteExample’ ile devam ediyorum.

Yazılımsal olarak oluşturacağımız veri tabanımız için öncelikle veri tabanımızı temsil edecek bir sınıf oluşturalım.

Ben bu sınıfa DatabaseHelper ismini verdim. Bu sınıf içerisinde veri tabanımızda bulunmasını istediğimiz tabloları oluşturacağız. DatabaseHelper( ) sınıfımız SQLiteOpenHelper( ) sınıfına miras yoluyla erişim sağlar ve gerekli parametreleri gireriz.

SQLiteOpenHelper( ) sınıfı, bizden parametre olarak bir adet context; veri tabanı için isimlendirme, factory ve version değeri ister. Burada istenilen context için, DatabaseHelper( ) sınıfında oluşturduğumuz context’i kullanırız. Factory için null, version değeri için ‘1’ giriyoruz. Bu sınıfı ilk kez oluşturduğumuz için version değerine ‘1’ girdik ancak daha sonra güncelleme yapacak olursanız bu değeri artırabilirsiniz.

Oluşturduğumuz sınıf içerisinde kullanmamız gereken bazı metodları, sınıf tanımlamasını bitirdikten sonra studio size hatırlatacaktır. Hemen kırmızı yanar, bilirsiniz :).

Burada kullanılacak iki metod var. Birincisi onCreate( ) metodu diğeri ise onUpgrade( ) metodudur.

onCreate( ) metodu içerisinde veri tabanında ihtiyacımız olan tabloları tanımlarız.

onUpgrade( ) metodu içerisinde ise, veri tabanında yaşanabilecek herhangi bir aksiliğe karşı alacağımız önlemleri belirleriz.

Üniversitede veri tabanı yönetim dersi alanlar bilir, kütüphane veri tabanı oluşturmak epey popülerdir :). Bu yazı için ben de aynı örnek üzerinden ilerleyeceğim.

onCreate( ) metodu içerisinde bize verilen nesne ile -genelde p0'dır, ben database kısaltması olan db olarak değiştiriyorum- içerisine SQL sorgumuzu yazacağımız exeSQL’e ulaşıyoruz.

onUpgrade( ) metodu içerisinde, yine bize verilen nesne ile -yukarıdaki gibi değiştirebilirsiniz- exeSQL’e ulaşıyoruz. exeSQL içerisine yazdığımız sorgu sayesinde, eğer veri tabanında bir sorun oluşursa varolan veri tabanını silmesini daha sonra ise onCreate( ) metodunu tekrar çağırarak veri tabanını yeniden oluşturmasını sağlarız. Çağırdığımız onCreate( ) metodu içerisine, SQLiteDatabase’in bize verdiği -kodlamada daha detaylı görebilirsiniz- nesneyi parametre olarak yazmayı unutmayalım. Burası kritik :).

Sıra tablomuzu sınıf olarak oluşturmakta.

Tablomuz içerisinde oluşturacağımız alanlara karar verdikten sonra sınıfımızı tanımlayabiliriz. Yukarıda da belirttiğim gibi kütüphane veri tabanı tadında bir uygulama olsun diye kitaplar isimli bir tablo oluşturuyorum.

Yeni bir sınıf oluştururken bir öncekinden farklı olarak data class seçeneğiyle ilerliyoruz. Data class’ın bize sağlayacağı metodlardan da faydalanacağız. Sınıfıma basitçe tablomla aynı şekilde ‘Kitaplar’ ismini veriyorum.

Kitaplar tablosu içerisindeki {kitap_no, kitap_ad, kitap_sayfa, kitap_fiyat} alanları aynı zamanda bizim parametrelerimizi oluşturuyor.

Üçüncü adımda veri tabanı üzerinde gerçekleştireceğimiz işlemleri tanımlayacağımız sınıfı oluşturuyoruz. Bu sınıfı ‘Kitaplardao’ olarak adlandırıyorum. Bu sınıf içerisinde Insert, Delete, Update gibi SQL sorgularını fonksiyonlar halinde tanımlayarak kullanabiliriz.

Örnek olması adına Insert işlemini tanımladım. Eğer isterseniz yukarıda bahsettiğim diğer SQL işlemleriyle beraber başka bir yazıda ayrıntılarına değiniriz.

Umarım faydalı bir içerik olmuştur, aklınıza takılanları sormaktan çekinmeyin :).

Keyifli kodlamalar!

Projenin tamamına aşağıdaki linkten ulaşıp inceleyebilirsiniz.

https://github.com/aybukefirat/SQLiteExample

--

--