SQLite dan Android
Apa itu SQLite?
SQLite merupakan open source database yang dirancang khusus untuk keperluan penyimpanan data pada perngkat elektronik dengan memori terbatas. SQLite mendukung penggunaan standar relational database seperti SQL syntax dan transaction.
Ada 5 macam tipe data yang bisa ditampung pada database SQLite yaitu NULL, INTEGER (seperti tipe long pada Java), REAL (seperti tipe double pada Java), TEXT (seperti tipe String pada Java), dan BLOB. Sebaiknya data perlu dikonversi kedalam lima tipe diatas sebleum disimpan kedalam database, karena SQLite tidak mem-validasi setiap data yang masuk ke kolom database. Artinya, kita bisa saja memasukkan data String kedalam kolom Real dan sebaliknya.
SQLite didalam Aplikasi Android
Integrasi database SQLite kedalam project android sangat mudah dilakukan. Kita cukup mendeklarasikan statement SQL untuk creating dan updating database. Selanjutnya database akan dikelola oleh sistem operasi Android.
Berinteraksi dengan database, sama artinya kita dengan mengakses sistem file. Apabila frekuensi interaksi sangat tinggi, proses operasi bisa menjadi lambat. Sangat disarankan setiap interaksi dilakukan secara asynchronous.
Pada project ini kita akan membuat database dengan todo.db. Database ini akan disimpan didalam direktori DATA/data/id.technomotion.todolist/database/todo.db. Tentunya nama package id.technomotion.todolist akan lain jika penamaan package project yang Anda buat juga berbeda.
SQLite Architechture
Packages
Selama menggunakan database SQLite, kita membutuhkan package android.database
dan beberapa sub package lainnya seperti
- android.database.sqlite.SQLiteOpenHelper
- android.database.sqlite.SQLiteDatabase
- android.database.curor
Create and Update database menggunakan SQLiteOpenHelper
SQLiteOpenHelper bertanggung jawab untuk menangani dua hal penting yaitu "create" dan "upgrade" database. Yang perlu kita kerjakan adalah membuat class baru (misalnya diberi nama TodoSQLiteHelper.java), kemudian menambahkan extends SQLiteOpenHelper
. Kita harus memanggil super()
didalam cunstructor class, kemudian nama database dan versi database kita deklarasikan didalamnya.
public class TodoSQLiteHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME="todo.db";
private static final int DATABASE_VERSION=1;
public TodoSQLiteHelper(Context context){
super(context,DATABSE_NAME,null, DATABASE_VERSION);
}
}
Didalam class ini kita perlu melakukan overriding terhadap dua method yaitu
onCreate()
pertama kali dipanggil oleh framework jika file database (seperti todo.db) belum terbentuk.onUpgrade()
dipanggil apabila kita mengubah versi database. Penomoroan versi database dimulai dari 1,2,3,4,... dan seterusnya. Method ini memungkinkan kita memperbariu skema database atau menghapus database dan membuatnya kembali melalui methodonCreate()
.
Selain dua method diatas, SQLiteOpenHelper juga menyediakan method getReadableDatabae()
dan getWritableDatabase()
. Dua method ini dapat digunakan untuk mengubah mode tulis atau baca pada database.
Setiap tabel harus memiliki kolom _id
sebagai primary key.
SQLiteDatabase
SQLiteDatabase
merupakan class utama yang menyediakan metho-method untuk keperluan query seperti insert(), update(), dan delete(). Disamping itu juga disediakan method execSQL()
yang bsia digunakan untuk mengesekusi statment SQL secara langsung.