-1

Sử dụng Room database trong Android

Trong bài viết này, chúng ta sẽ làm việc với Room database. Room là một cơ sở dữ liệu ORM dựa trên SQLite database. Room là cơ sở dữ liệu được giới thiệu bơi Google, cho phép bạn dễ dàng thao tác các truy vấn SQLite trong Android.

1. Chuẩn bị

  • Android Studio 3.0 trở lên

2. Tạo Android Project

  • Trong app/build.gradle, thêm các dependency sau để sử dụng Room :
implementation  "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor  "android.arch.persistence.room:compiler:1.0.0"
  • Trong build.gradle của Project, thêm google() reposity :
repositories  {
    google()
    jcenter()
}

3. Thêm Room Entities

  • Tạo class Item như sau :
import android.arch.persistence.room.Entity;  
import android.arch.persistence.room.PrimaryKey;  
import android.support.annotation.NonNull;  

@Entity(tableName = "items")  
public class Item {  
    @PrimaryKey  
    @NonNull  private Long id;  
    private String name;  
    private String description;  
    private Long quantity;  
}

4. Tạo DAO Interface

import android.arch.persistence.room.Dao;  
import android.arch.persistence.room.Delete;  
import android.arch.persistence.room.Insert;  
import android.arch.persistence.room.Update;  
import inventory.techiediaries.com.models.Item;  

@Dao  
public interface ItemDAO {  
    @Insert  
  public void insert(Item... items);    
    @Update  
  public void update(Item... items);   
    @Delete  
  public void delete(Item item);  
}

5. Thêm các truy vấn

Room cho phép bạn thực hiện các truy vấn SQL như thêm, sửa, xóa.

Import các class sau :

import android.arch.persistence.room.Query;  
import java.util.List;

Và thêm các method :

@Query("SELECT * FROM items")  
public List<Item> getItems();

Truy vấn Item theo id như sau :

@Query("SELECT * FROM items WHERE id = :id")  
public Item getItemById(Long id);

6. Tạo Room Database

import android.arch.persistence.room.Database;  
import android.arch.persistence.room.RoomDatabase;  

@Database(entities = {Item.class}, version = 1)  
public abstract class AppDatabase extends RoomDatabase {  
    public abstract ItemDAO getItemDAO();  
}

7. Khởi tạo Database

Khởi tạo database trong hàm onCreate() của MainActivity như sau :

AppDatabase database = Room.databaseBuilder(this, AppDatabase.class, "mydb")  
        .allowMainThreadQueries()  
        .build();

Cuối cùng, chúng ta tạo các phương thức tạo, thêm, sửa , xóa, và cập nhật dữ liệu trong database như sau :

ItemDAO itemDAO = database.getItemDAO();  
Item item = new Item();  
item.setName("Item001");  
item.setDescription("Item 001");  
item.setQuantity(1000);  

itemDAO.insert(item);  
List<Item> items = itemDAO.getItems();    
System.out.println(items);

All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.