Menü

Android SQLite

24 Ocak 2015 - Android & IOS

SQLite-3-7-17-Is-Available-for-Download

Küçük, Hızlı, Güvenilir diye tarif ediliyor SQLite veritabanı sistemi. Ciddi desteğe sahip olan bir veritabanı. Sitesinde http://www.sqlite.org/ ayrıntılı bilgiler yer almakta. Gayet kullanışlı. Birçok programlama diliyle birlikte kullanmanın çok kolay ve hızlı olduğundan bahsediliyor ancak ben sadece android’de kullandım. Deneyimlerimi de sizlerle paylaşacağım. Öncelikle bir arayüzü olmadığına vurgu yapmak isterim. Arayüz istiyorsanız Mozilla Firefox tarayıcısına bir eklenti kurarak tarayıcı üzerinden bir arayüze sahip olabilirsiniz. Ayrıca bazı paket programlar da bulunmakta. SQLiteManager gibi. Android ile veritabanı işlemlerinde henüz yeni olduğumdan bahsettiğim arayüzleri deneyimleme fırsatım olmadı. Deneyimledikçe blogumda paylaşacağım. Android projesinde öncelikle bir veritabanı class’ı açalım.

Veritabani.Java

public class Veritabani extends SQLiteOpenHelper{
static final String VeriTabani=”Gunlugum”; //Veritabanı adı 
static final int version=1;//Versiyonu
public Veritabani(Context context) {//sınıfın yapılandırıcısı
super(context, VeriTabani, null, version);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {//Veritabanının oluşturulduğu metod
db.execSQL(“CREATE TABLE GunlukTable (baslik TEXT , metin TEXT, tarih TEXT);”);
//3 adet kolon var TEXT tipinde baslik metin ve tarih
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//Veritabanı güncellendiğinde yapılacaklar
db.execSQL(“DROP TABLE IF EXIST GunlukTable”);
onCreate(db);

}

}

SQLite ile kullanabileceğiniz veri yapıları :

Veritabanı class’ını tanımlama işlemi tamamlandı. Şimdi nasıl kayıt ekleyeceğimizi anlatalım.

public class kayitekle extends Activity

{

Veritabani veritabani;//nesne oluşturduk

protected void onCreate(Bundle savedInstanceState) {

kaydet.setOnClickListener(new OnClickListener(){

//baslik, metin edittext tarih ise sistem tarihi olmak üzere
@Override
public void onClick(View arg0) {
//Kaydetme eventi
kayitEkle(baslik.getText().toString(), metin.getText().toString(), tarih);
}});

}

//kayıt ekle metodu

protected void kayitEkle(String baslik, String metin, String tarih) {
SQLiteDatabase db=veritabani.getWritableDatabase();//Yazılabilir veritabanı
ContentValues cv=new ContentValues(); // içerik tutucu
cv.put(“baslik”, baslik);//”baslik” alanında baslıgı tut
cv.put(“metin”, metin);//
cv.put(“tarih”, tarih);//
//Kaydet ya da hata ver.
db.insertOrThrow(“GunlukTable”,null,cv);
}

}

Kaydetme işlemi tamam. Şimdi de kaydettiğimiz verileri başlığı baz alarak ListView içerisinde nasıl sıralayacağımıza bakalım.

public class Oku extends Activity{

ArrayList<String> basliklistesi; //Listview’a kaynak olması açısından ArrayList tanımladık
String[] kolon={“baslik”,”metin”,”tarih”};//Veritbanındaki alanlar
Veritabani VeriTabani;//veritabanı nesnesi
ListView basliklar;

protected void onCreate(Bundle savedInstanceState) {

VeriTabani=new Veritabani(this); //yapılandırıcıyla beraber nesne oluşturduk.
basliklar=(ListView)findViewById(R.id.basliklar);

Cursor c=kayitcek();
kayitlist(c);

}

protected Cursor kayitcek() {

SQLiteDatabase db=VeriTabani.getReadableDatabase();
Cursor c=null;
c=db.query(“GunlukTable”, kolon, null, null, null, null, null);
Log.d(“Kayıt Getir”, “Hata alındı”);
return c;
}

public void kayitlist(Cursor currs)
{
basliklistesi=new ArrayList<String>();
while(currs.moveToNext())
{
basliklistesi.add(currs.getString(currs.getColumnIndex(“baslik”)));//baslikları çekip basliklistesi arraylistin’e ekledik
}
Log.d(“Kayıt goster”, “Hata alındı”);
basliklar.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, basliklistesi));//listview içerisine aktardık.
}

}

Class’larda kodlama yapmadan önce xml’leri oluşturmalısınız hepinizin bildiği gibi. İşlemler şimdilik buraya kadar. Çalışmalarımla eşzamanlı olarak bloğumda paylaşmaya devam edeceğim. Takipte kalın

Bir Cevap Yazın