Mobil Programlama

iOS

SQLite'ın Kullanımını Kolaylaştıran FMDB

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Eğer projenizde SQLite veritabanı kullanmak istiyor ancak Core Data teknolojisine ihtiyacınız yoksa FMDB kütüphanesinden faydalanabilirsiniz. FMDB SQLite işlemlerini hızlı bir şekilde gerçekleştirmenizi sağlayan ve SQL sorgularını kolayca çalıştırmanızı sağlayan bir projedir.

Projeyi yüklemek için dosyaların yüklenmesi tamamlandıktan sonra src klasörünü kendi projenizin içine taşımanız yeterlidir. FMDB aynı zamanda SQLite veritabanı ile haberleşmek için libsqlite3.dylib dosyasına ihtiyaç duyar. Bunun için projeyi seçerek Targets altında Linked Frameworks and Libraries bölümüne gelin ve ilgili dosyayı projeye ekleyin.

 

Projeyi ekledikten sonra bir veritabanı oluşturmak için FMDatabase sınıfından faydalanırız. Veritabanını kullanmak istediğimiz dosyada #import “FMDatabase.h” eklentisini gerçekleştirerek veritabanına aşağıdaki şekilde erişim sağlayabiliriz.

 

FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/gelecek.db"];
if ([db open]) {

}

 

Yukarıdaki işlem bize gelecek.db adında bir veritabanına erişim sağlayacaktır. Eğer veritabanı yoksa bizim için otomatik olarak oluşturulur. open metodu ise veritabanı bağlantısını açar ve SQL komutlarını çalıştırmamızı sağlar. Şimdi ilk olarak bir tablo oluşturalım ve bu tablonun içerisine çeşitli satırlar ekleyelim.

 

FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];

if ([db open]) {
[db executeUpdate:@"create table country (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, code TEXT);"];
[db executeUpdate:@"INSERT INTO country VALUES (1,'Almanya','49');"];
[db executeUpdate:@"INSERT INTO country VALUES (2,'Turkiye','90'); "];
}

 

Veritabanı üzerinde herhangi bir güncelleme işlemi gerçekleştirirken (UPDATE, INSERT, CREATE gibi sorgular) executeUpdate: metodundan faydalanırız. Bu metodu çalıştırmadan önce veritabanını open metoduyla açmayı unutmayınız. Yukarıdaki satırlar country adında bir tablo oluşturacak ve bu tabloya iki adet ülke ekleyecektir.

Şimdi bu tablonun satırlarını ekrana getirelim;

 

FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
if ([db open]) {
[db executeUpdate:@"create table country (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, code TEXT);"];
[db executeUpdate:@"INSERT INTO country VALUES (1,'Almanya','49');"];
[db executeUpdate:@"INSERT INTO country VALUES (2,'Turkiye','90'); "];
FMResultSet *s = [db executeQuery:@"SELECT * FROM country"];
while ([s next]) {
NSLog(@"%d %@ %@",[s intForColumn:@"id"],[s stringForColumn:@"title"],[s stringForColumn:@"code"]);
[db close];

 

FMResultSet veritabanına yapılan sorgulara dönülen cevabın görüntülenmesini sağlayan sınıftır. Yukarıdaki örnekte veritabanına atılan bir SELECT sorgusunun cevabı bir while döngüsü içerisinde bize veriliyor. Son satıra gelene kadar next metodu YES değeri döndüreceğinden bütün satırları incelemek mümkün olacaktır. Burada bir değeri int tipinde çekmek için intForColumn:, NSString tipinde çekmek içinse stringForColumn: metodundan faydalanırız. Çekmek istediğiniz sütun adını yazdığınızda o satıra karşılık gelen değer size verilecektir.

 

Proje adresi: https://github.com/ccgus/fmdb