Android SQLite Veritabanı Kullanımı(Ekleme Güncelleme Listeleme)

ilyasaglar tarafından tarihinde yayınlandı

Android Studio ile uygulamalar geliştirirken çeşitli verilerimizi saklama ihtiyacına gereksinim duyarız.Verilerimizi saklamanın en yollarından biri veritabanı kullanmaktır. Android Studio için en uygun ve kullanımı kolay veritabanı ise SQLite’dır.

Android Studio’da SQLite kullanımı için öncelikle Database.java isimli bir class oluştumanız, tüm varitabanı kodlarınız tek class’da toplamanızı sağlar. Ekleme, silme, güncelleme, listeleme gibi tüm kodlarımızı burada yazarız ve ihtiyaç duyduğumuz yerde bunları kullanırız.

 

SQLite için class’ımızı oluşturduktan sonra ilk olarak şu kodları yazmalıyız.Burada  SQLiteOpenHelper sınıfından extends edildiğine dikkat edelim. Aşagıda tabomuzun adı, versiyonu, sütun bilgilerini girdik.

 

public class Database extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "otopark_db";     //veritabanı adı
    public static final int DATABASE_VERSION = 10;               //veritabanı versiyonu


    public static final String GIRIS_TABLE = "table_giris_cikis";         //vt tablo adı
    public static final String ROW_ID_GIRIS = "id_giris";                 //tablodaki id, plaka ve diger satırlarımız
    public static final String PLAKA_GIRIS = "plaka_giris";
    public static final String GIRIS_SAATI_GIRIS = "saat_giris";
    public static final String GIRIS_TARIHI_GIRIS = "tarih_giris";
    public static final String TOPLAM_TUTAR_GIRIS = "ucret_giris";
    public static final String ABONELİK_SORGULAMA = "abonelik_sorgula";
    public static final String ICERIDEMI = "iceridemi";

    public static final String ABONE_TABLE = "table_aboneler";               //vt başka bir tablomuzun adı
    public static final String ROW_ID_ABONE = "id_abone";                    //tablomuzun id, plaka, adi vs satırları
    public static final String PLAKA_ABONE = "plaka_abone";
    public static final String ADI_ABONE = "adi_abone";
    public static final String TELEFON_ABONE = "telefon_abone";
    public static final String ACIKLAMA_ABONE = "aciklama_abone";
    public static final String KAYIT_TARIHI_ABONE = "kayit_tarihi_abone";

 

Daha sonra ise onCreate metodumuzda yeni tablolarımızı oluşturuyoruz. onUpgrade metodumuzda ise uygulamada daha önceden bir tablo oluşturulmamış ise yeni tablo oluşturuyor. Tablo oluşturulmuş ise herhangi bir şey yapmıyor.

public Database(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override
public void onCreate(SQLiteDatabase db) {  //GİRİS CIKIŞ VE ABONELER tablolarını oluşturma(yukarıdaki tanımladıgımız bilgileri kullanıyoruz)

    db.execSQL("CREATE TABLE " + GIRIS_TABLE + "(" + ROW_ID_GIRIS + " INTEGER PRIMARY KEY, " + PLAKA_GIRIS + " TEXT NOT NULL, " + GIRIS_SAATI_GIRIS + " TEXT NOT NULL, " + GIRIS_TARIHI_GIRIS + " TEXT NOT NULL, " + TOPLAM_TUTAR_GIRIS + " TEXT NOT NULL, " + ABONELİK_SORGULAMA + " TEXT NOT NULL, " + ICERIDEMI + " TEXT NOT NULL   )");
    db.execSQL("CREATE TABLE " + ABONE_TABLE + "(" + ROW_ID_ABONE + " INTEGER PRIMARY KEY, " + PLAKA_ABONE + " TEXT NOT NULL, " + ADI_ABONE + " TEXT NOT NULL, " + TELEFON_ABONE + " TEXT NOT NULL, " + ACIKLAMA_ABONE + " TEXT NOT NULL, " + KAYIT_TARIHI_ABONE + " TEXT NOT NULL )");

}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {   //tablo varsa sil yeniden oluşturma
    db.execSQL("DROP TABLE IF EXISTS " + GIRIS_TABLE);
    db.execSQL("DROP TABLE IF EXISTS " + ABONE_TABLE);

    onCreate(db);
}

Buraya kadar tablolarımızı oluşturduk şimdi ise oluşturduğumuz tablomuza yeni veri eklemeyei bakalım.

 

SQLite Veri Ekleme

Daha önceden oluşturulan veritabanımıza ve sütunlarımızı kullanarak insert komutunu kullanarak ekleme yapıyoruz.Burada yer alan trim() textboxa yazılan verinin tamamını almak için kullanılıyor. ContentValues kullanrak sütunlarımıza verileri textbox’dan gelen veriler ile dolduruyoruz.Burada gelen veriler metoda geliyor ve bu değişkenleri kullanarak kaydettik. Kaydetme işlemi bitince veritabanını kapatmayı unutmuyoruz

public void aboneEkle(String plaka, String adi_soyadi, String telefon, String aciklama, String kayıt_tarihi) {          //abone ekle
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(PLAKA_ABONE, plaka.trim());
    cv.put(ADI_ABONE, adi_soyadi.trim());
    cv.put(TELEFON_ABONE, telefon.trim());
    cv.put(ACIKLAMA_ABONE, aciklama.trim());
    cv.put(KAYIT_TARIHI_ABONE, kayıt_tarihi);


    db.insert(ABONE_TABLE, null, cv);
    db.close();
}

SQLite Veri Güncelleme

Burada ise yine ContentValues kullanarak UPDATE komutunu kullanarak güncelleme işlemini yapıyoruz

public void abone_Guncelle(String plaka_guncelle, String adi_soyadi_guncelle, String telefon_guncelle, String aciklama_guncelle, String kayıt_tarihi_guncelle) {//kayit güncelle metodu
SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();

    cv.put(ADI_ABONE, adi_soyadi_guncelle);
    cv.put(TELEFON_ABONE, telefon_guncelle);
    cv.put(ACIKLAMA_ABONE, aciklama_guncelle);
    cv.put(KAYIT_TARIHI_ABONE, kayıt_tarihi_guncelle);


    db.update(ABONE_TABLE, cv, PLAKA_ABONE + "="+ plaka_guncelle, null);

}

SQLite Verileri Listeleme

Verilerimizi listelemek için bir Listview kullanmamız gerekiyor. Buradali Cursor metodunu kullanarak verilerimizi Listview’de listeleyeceğiz.


public List<String> aboneListele() {                                               //aboneler listele

    SQLiteDatabase db2 = this.getWritableDatabase();
    List<String> veriler = new ArrayList<String>();
    String[] sutunlar = {ROW_ID_ABONE, PLAKA_ABONE, ADI_ABONE, TELEFON_ABONE, ACIKLAMA_ABONE};
    Cursor cursor = db2.query(ABONE_TABLE, sutunlar, null, null, null, null, null);
    while (cursor.moveToNext()) {
        veriler.add(cursor.getInt(0) + "  -  " + cursor.getString(1) + "  -  " + cursor.getString(2) + "  -  " + cursor.getString(3) + "  -  " + cursor.getString(4));
    }
    return veriler;

}

Kodları uygulama üzerinden incelemek isterseniz buradan örnek projeyi indirebilirsiniz. Proje üzerinde yorum satırlarını okursanız tüm açıklamalar yapılmıştır.


0 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir