Membuat DAO
DAO (Data Access Object), DAO menspesifikasikan SQL query dengan method. Pada
room persistence, terdapat annotation-annotation khusus yang digunakan untuk
mengimplementasikan DAO, seperti contohnya @Insert
. Untuk membuat DAO, harus
didefinisikan sebagai interface
atau abstract class
.
Untuk mengimplementasikan DAO, silahkan ikuti langkah-langkah berikut:
- Buatlah sebuah package
dao
pada project anda. - Buatlah interface dan beri nama dengan
UserDao
, dan jangan lupa untuk memberikan annotation@Dao
untuk menandai bahwa ini adalah implementasi DAO dalam Room.
@Dao
public interface UserDao {
}
- Pada interface
UserDao
definisikan method untuk melakukan operasi insert dengan annotation@Insert
@Insert
void insert(User... user);
Catatan: notasi tiga titik pada java adalah shortcut code untuk mendefinisikan bahwa method ini dapat menerima argumen array atau multiple argumen.
- Pada aplikasi ini dibutuhkan proses login, alur proses login membutuhkan
pengecekan data berdasarkan username. Jika data ditemukan baru diproses lebih
lanjut dengan pencocokan password. Untuk mendefinisikan custom query pada room
digunakan annotation
@Query
. Definisikan operasi query tersebut dengan kode berikut.
@Query("SELECT * FROM users WHERE username = :username LIMIT 1")
LiveData<User> getUserByUsername(String username);
Catatan:
LiveData
digunakan untuk mendapatkan data terbaru ketika terjadi perubahan. Referensi lebih lanjut silahkan dibaca pada dokumentasi Livedata.LiveData
umumnya digunakan ketika bekerja dengan UI.
- Buatlah interface
NoteDao
pada packagedao
. Pada interface
NoteDao
definisikan operasiinsert
,update
,delete
dengan annotation@Insert
,@Update
,@Delete
Untuk mengambil semua data catatan dibutuhkan sebuah query. Definisikan query tersebut dengan kode berikut.
@Query("SELECT * FROM notes")
LiveData<List<Note>> getAll();