A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
Android ile SQLite Veritabanı Hazırlama

Android ile SQLite Veritabanı Hazırlama Bu Gün sizlere SQLite Veritabanı ve Android üzerinde bir veritabanını oluşturmak için gerekli kodlar SQLite nin ne olduğu bizlere sağladığı avantajlar nelerdir bunları anlatmaya çalışacağım dilimin döndüğünce ve anlatabildiğim kadarını anlatacağım. Not konun uzmanı değilim ancak bildiğim kadarı ile sizlere ne olduğunu izah etmeye çalışacağım inşAllah.
SQLite Nedir ve Avantajları Nelerdir ?

Bildiğiniz gibi çoğu uygulamalarda verilerin bir yerde depolanması gerekmektedir. Bu konuda bizlere yardımcı olan ve en iyi seçim hiç şüphesiz Veritabanı olduğu
Dünyada en çok dağıtılan açık kaynak kodlu SQLite bir çok dillerde çalışabilmektedir. C ve C++ ile geliştirilmiş olan bu veritabanı motoru. C, C++, C#, Java, PHP, Delphi, Objective – C, Python dilleri ilede çalışmaktadır
Kullanım gayet basit olan SQLite çok az yer kaplamasına sahip olmasından dolayıdır ki mobil cihazlarda da çok rahat bir şekilde kullanılabilinmektedir.

Avantajları



1: Kurulum ve merkezi konfigürasyon gerektirmemesi.
2:Birden fazla uygulamanın aynı anda aynı veritabanını kullanmasına izin vermesi
3:Her veritabanı için tek bir dosya oluşturması ve metin alanları için sadece gerçekten kullanılan alan uzunluğunu kaydetmesidir.

Veri Tipleri
• TEXT
• REAL
• NONE
• INTEGER
• NUMERIC



SQLite Android Üzerinde Kullanımı

Android üzerinde otomatik olarak bizlere sunulmuş hazır bir veritabanı bulunmamaktadır. Adroid uygulamalarımız için bir veritabanı oluşturma gereksinimi hissediyorsak kendi veri tiplerimizi, tablolarımızı belirlemeli son olarak bunlar arasında bir bağ belirlemeliyiz.
Diyeceksiniz ki
“Sıfırdan veri tabanı mı hazırlayacağız? bu çok karmaşık ve içinden çıkılmaz bir durum olabilir.”

Bu konuda sql ile birazçıkta olsa bilgisi olanlar SQLite ile uyumluluk konusunda bir sıkıntı ile karşılaşmayacaklardır.

Temel operasyonların kullanımı?
Temel operasyondan kastım (UPDATE, SELECT, INSERT, DELETE).

Ancak konuya henüz başlamamışken şu birkaç şey daha eklemekte fayda vardır diye düşünüyorum SQLite veritabanı oluştururken bazı hazır sınıfların altsınıfları olarak türetilen sınıflar üzerinde işlem yapmak bizlere her zaman fayda sağlayacaktır. Kütüphane tarafından sağlanan sınıflar hem mantıksal bir bütünlük hemde veritabanını yönetmeyi kolaylaştıracak yetenekleri desteklemektedir.
Gelelim bir veritabanını nasıl oluşturacağımıza ve temel operasyonları nasıl kullacağımıza

1. SQLiteOpenHelper’dan türetilen bir sınıf oluşturmak.

public class TestDBHelper extends SQLiteOpenHelper { }
Kullanıcıya 2 methodu kullanma zorunluluğu getirecektir.
1.1 =>onCreate(SQLiteDatabase db) :
Veritabanı ilk oluşturulduğunda çağrılır. Tabloları, viewleri, trigger vb. yapılar bu method içinde oluşturulur.
1.2 => onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon) :
Veritabanı üzerinde herhangi bir değişiklik olduğunda çağrılır. Tablo değişimi vb. gibi.

2. Sabitleri tanımlamak

public class DenemeDBHelper extends SQLiteOpenHelper {
static final String dbAdi="dbtest";
static final String kisitable ="kisi";
static final String _id="_id";
static final String ad ="ad";
static final String soyad ="soyad";
static final String yas ="yas";
static final int version =1;
//constructer()...
//onCreate()....
//onUpgrade()....
}


Burada öncelikle (static ve Final olarak tanımladığımıza dikkat etmemiz önemli bir husus)
Ben örnek için kişinin ad,soyad ve yaşının tutulduğu tabloyu içinde barındıran bir veritabanını baz aldım. Sabitleri helper sınıf içinde tanımladığımız gibi farklı bir sınıf içerisinde de tanımlayabiliriz. Bizler için önemli olan kısım “erişilebilir ve kullanımı anlaşılabilir olsun”.
3. Veritabanı İşlemleri için Gereksinimler

getWritableDatabase() : Yazılabilir bir veritabanı sunar update,delete ve insert işlemleri için uygundur.
close() : Veritabanını kapatır.
getReadableDatabase() : Okunabilir bir veritabanı sunar. Select işlemleri için uygundur.

4. Constructer

public TestDbHelper(Context context)
{
super(context,dbAdi,null,version);
}


5. onUpgrade()

Veritabanında herhangi bir modifikasyon olduğunda onUpgrade() methodu çalıştırılır. Daha sonrasında çağrılan onCreate() methodu değişikleri hayata geçirmeye yarar. (Drop Table , Alter Table, Drop arg. Alter arg)
public void onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon){
db.execSQL("DROP TABLE IF EXISTS"+kisitable);
onCreate(db);
}



6. onCreate() ve Tablo Oluşturmak

onCreate() methodu ile Tablo oluşturma işlemlerimizi yapıyoruz. Aşağıda bir kişi tablosu oluşturmak için gereken sql cümleciğini ve bir tablonun nasıl oluşturulduğunu bulabilirsiniz.
public void onCreate(SQLiteDatabase db)
{
db.execSQL ("CREATE TABLE"+ kisitable+"("+_id+" INTEGER PRIMARY KEY AUTOINCREMENT,"+ ad+" TEXT, "+soyad+" TEXT, "+yas+" INTEGER);");
}


7. Queryleri Çalıştırmak

SQLite hem bilinen sql cümlelerini (rawQuery()) desteklemektedir hem de kendi içinde özelleşmiş sorgulama methodları bulunmaktadır.
db.rawQuery(String sql, String[] selectionArgs) :
Örneğin SELECT * FROM kisitable sql cümleciğini kullandığımızda tablodaki tüm verileri tamamıyle elde edebililmemize olanak tanımaktadır Daha sonra döndürülen sonuç Cursor tipindeki değişkene atanır .
SQlite’ın özelleşmiş methodlara değinecek olursak ;
• query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
• insert(String table, String nullColumnHack, ContentValues icerikDegerleri)
• delete(String table, String whereCumlecigi, String[] whereArgumanları)
• update(String table, ContentValues icerikDegerleri, String whereCumlecigi, String[] whereArgumanlari)
Yukarıdaki methodların kullanımını kısaca örneklemek gerekirse;
public Cursor rawQueryTest() {
Cursor sonuc= new Cursor();
sonuc=db.rawQuery("SELECT_id,ad,soyad,yas FROM kisi, null);return sonuc;}

________________________________________
public Cursor queryTest(){
String[] columns={_id, ad};
String[] isimDegeri={"birisim"};
Cursor sonuc=db.query (kisitable, columns, "ad=?", isimDegeri, null, null, null);
return sonuc;
}

________________________________________
private void insertTest(String a, String s, int y) {
ContentValues cv=new ContentValues(3);
cv.put(ad,a);
cv.put(soyad,s);
cv.put(yas,y);
db.insert(kisitable, null, cv);
}

________________________________________
private void deleteTest(int id) {
String[] args={String.valueOf (id)};
db.delete (KISITABLE, "_id=?", args);
}


8. Cursor Kullanımı
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 veri tabanındaki ilk kayda gider
moveToNext() : Cursor bulunduğu konumdan bir sonraki kayda geçer.
isAfterLast() : Son satırdan bir önceki mi sorgulaması yapar
Ayrıca bunların dışında kalan getColumnNames(), getColumnIndex(), getString(), getInt() methodlarıda aynı zamanda veritabanı işlemleri içinde kullanılabilinmektedir.
Şimdi sizlere tüm verilerin nasıl getirildiğini ve verilere nasıl ulaşıldığını gösteren kod parçasını sunacağım.
public void cursorTest() {
Cursor c = db.rawQueryTest();
startManagingCursor(c);
if (c.moveToFirst()) {
do {
int id1 = c.getInt(c.getColumnIndex(_id));
String ad1 = c.getString(c.getColumnIndex(ad));
String soyad1= c.getString(c.getColumnIndex(soyad));
String yas1 = c.getInt(c.getColumnIndex(yas));
//alınan verilerden nesne oluştur dizi vektor, list vb. ekle
} while (c.moveToNext());
}
}


İlerleyen günlerden kurum ve birkaç uygulamayı video ile göstermeye çalışacağım. Olmadı en azından görsel olarak anlatmaya gayret edeceğim.
Yazımda ki amaç SQLite konusunda ufak bir göz aşinalığı bulundurmaktı. Faydalı olması ümidi ile
  • diline pelesenk olmak ne demek
  • dillere pelesenk olmuş ne demek
  • pelesenk
  • pelesenk ne demek
  • Pelesenk Ne Demek – Pelesenk Sözlük Anlamı
  • pelesenk olmak ne demek
  • pelesenk olmak ne demektir
  • pelesenk olmuş ne demek
  • Yüksek Yüksek Tepelere sözleri
  •   Ad Soyad
      Yorum