Litepal : Implementasi SQLite CRUD di Android Mudah dan Cepat

Setelah sebelumnya saya sudah membahas library sqlite room. Kali ini adalah library sqlite lain yang memudahkan untuk implementasi sqlite di android. Litepal merupakan library android open source yang memudahkan penggunaan SQLite. Pada litepal ini tidak menggunakan perintah sql sama sekali. Operasi SQLite yang bisa dilakukan seperti membuat table, upgrade table, crud, fungsi aggregate, dan lain sebagainya.

Fitur yang tersedia di litepal

  • Menggunakan ORM (object relational mapping).
  • Konfigurasi yang mudah
  • Mendukung multi-databaseMulti databases supported.

Untuk setup/instalasi litepal juga cukup mudah. Berikut caranya :

Setup

Menambahkan Library

Di android studio, pada file build.gradle, tambahkan :

dependencies {
    compile 'org.litepal.android:core:1.6.1'
}

File konfigurasi litepal.xml

Litepal membutuhkan file konfigurasi yang mendefinisikan database, versi dan table yang digunakan. Buat file litepal.xml ini didalam folder assets. Dengan isi xml seperti ini :

[cc lang=”xml”]

[/cc]

beberapa penjelasan :

  • dbname nama database
  • version versi dari database. Setiap melakukan perubahan database,maka tambahkan nilai versi yang digunakan.
  • list class/model/table yang digunakan.
  • storage menentukan file database yang dihasil disimpan di internal atau eksternal.

Konfigurasi LitepalApplication

Selanjutnya tambahkan pada class application yang digunakan

[cc lang=”java”]public class MyOwnApplication extends Application {

@Override
public void onCreate() {
super.onCreate();
LitePal.initialize(this);
}

}[/cc]

setup sudah berhasil dilakukan.

Implementasi SQLite

Membuat Table

Misal kita akan membuat table user, maka kita perlu membuat model table tersebut dengan meng-extend DataSupport milik litepal, seperti :

[cc lang=”java”]public class User extends DataSupport {

private String name;

private String email;

private String phone;

// generated getters and setters.

}[/cc]

Lalu tambahkan model tersebut ke dalam file litepal.xml

[cc lang=”xml”]
[/cc]

Pada file class yang digunakan tambahkan :

[cc lang=”java”]SQLiteDatabase db = LitePal.getDatabase();[/cc]

maka otomatis model/tabel yang sudah didefinisikan akan terbuat otomatis dengan struktur yang sama dengan yang di model.

Menyimpan Data

Untuk menyimpan data juga cukup mudah, dengan meng-inherit dari model DataSupport yang digunakan :

[cc lang=”java”]User user = new User();
user.setName(“fachrie”);
user.setEmail(“fachrie@email.com”);
user.setPhone(“00011100”);
user.save();[/cc]

Mengupdate Data

Untuk mengupdate data bisa dilakukan beberapa cara, dengan menggunakan fitur save() berdasarkan object yang sudah dibuat seperti :

[cc lang=”java”]User userUpdate = DataSupport.find(User.class, 1);
userUpdate.setEmail(“achmad@email.com”);
userUpdate.save();[/cc]

atau menggunakan fungsi update() yang sudah tersedia dari DataSupport

[cc lang=”java”]User userUpdate = new User();
userUpdate.setEmail(“achmad@email.com”);
userUpdate.update(id);[/cc]

Menghapus Data

Untuk menghapus menggunakan fungsi delete() dari DataSupport

[cc lang=”java”]DataSupport.delete(User.class, id);[/cc]

atau jika menghapus banyak data, dengan menggunaka deleteAll()

Query Data

Untuk mendapatkan data sekaligus banyak dengan menggunakan findAll()

[cc lang=”java”]List allUsers = DataSupport.findAll(User.class);[/cc]

jika berdasarkan id tertentu

[cc lang=”java”]User user = DataSupport.find(User.class, id);[/cc]

Multiple Database

Untuk membuat database lebih dari satu bisa menggunakan seperti :

[cc lang=”java”]LitePalDB litePalDB = new LitePalDB(“demo2”, 1);
litePalDB.addClassName(User.class.getName());
litePalDB.addClassName(Account.class.getName());
LitePal.use(litePalDB);[/cc]

salah satu perbedaan dibanding dengan room, untuk implementasi query yang kompleks, seperti join dan kondisi-kondisi tertentu, maka di litepal mungkin akan sulit. Tapi jika penggunaan hanya CRUD yang sederhana, maka penggunaan litepal sangat mudah dan cepat

untuk tahu lebih banyak bisa lanjut ke https://github.com/LitePalFramework/LitePal

Mungkin Anda juga menyukai

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *