Android SQLite Veritabanı Kullanımı(Ekleme Güncelleme Listeleme)
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