Merhaba arkadaşlar bu gün ki makalemde SQLite database’ine giriş yapacağız.
önceki makalelerime buradan ulaşabilirsiniz.
SQLite database’i kullanıcının kendi local’ inde verilerin depolanmasını sağlar. Daha önceki makalelerde gördüğümüz firebase database’i verileri cloudda saklayan bir database’di. Firebase de depolanan verilere bütün kullanıcılar erişebilir ve uygulama sahipleri kullanıcının girmiş olduğu verileri görüntüleyip kontrol edebilir. SQLite da ise veriler kullanıcı localinde depolanır ve uzaktan müdahale söz konusu değildir. Uygulama verileri depolamak için telefonun hafızasını kullanır.
Uygulama içerisinde SQLite’ ı kullanabilmek için 3 tane temel class’ları oluşturmak gerekmektedir. Bunlar;
- DbHelper.java
- Contract.java
- Provider.java
Bu classları doğru bir şekilde tanımladıktan sonra insert,delete,update gibi işlemleri çok kolay ve sağlıklı bir şekilde yapabilirsiniz. Örnek DbHelper classı aşağıdaki gibidir.
package com.example.user.finalyproject.DataBase; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { public static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "store.db"; public DbHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { String SQL_CREATE_PRODUCTS_TABLE = "CREATE TABLE " + ProductContract.ProductEntry.TABLE_NAME + " (" + ProductContract.ProductEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + ProductContract.ProductEntry.COLUMN_PRODUCT_NAME + " INTEGER NOT NULL, " + ProductContract.ProductEntry.COLUMN_PRODUCT_PRICE + " TEXT NOT NULL, " + ProductContract.ProductEntry.COLUMN_PRODUCT_QUANTITY + " TEXT , " + ProductContract.ProductEntry.COLUMN_SUPPLIER_NAME + " TEXT, " + ProductContract.ProductEntry.COLUMN_PRODUCT_IMAGE + " TEXT ," + ProductContract.ProductEntry.COLUMN_SUPPLIER_EMAIL + " INTEGER, " + ProductContract.ProductEntry.COLUMN_SUPPLIER_PHONE + " TEXT);"; sqLiteDatabase.execSQL(SQL_CREATE_PRODUCTS_TABLE); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
Bu class da kullanacağımız tablonun create scriptini oluşturuyoruz. Tabloda olmasını istediğimiz kolonların isimlerini tek tek yazıp o kolonda hangi veri tipide veri saklanmasını istiyorsak onu belirtiyoruz. Ayrıca kolonlar null geçilmeyecekse, default bir değere sahipse gibi özellikleri de bu class da tanımlıyoruz. Primary key olan kolonu PRIMARY KEY söz dizimi ile oluşturup otomatik olarak değerinin artmasını istiyorsak AUTOINCREMENT söz dizimi nide ekliyoruz koda.
Bir makalenin daha sonuna geldik, esenle kalın..