[Android Cơ Bản] Lưu trữ dữ liệu với Android Room – Phần 1

Bài viết gốc : https://developer.android.com/training/data-storage/room

Lời mở đầu : Hi các em trong bài viết này thầy giới thiệu tới các em 1 cách thức mới để lưu trữ dữ liệu offline của lập trình Android với khái niệm Room

Room là gì ?

Chúng ta có thể hiểu Room là 1 bộ thư viện giúp lập trình viên tương tác dễ dàng hơn với SQLite bằng cách tái hiện lại cơ sở dữ liệu thông qua Entity và lớp DAO, khởi tạo cơ sở dữ liệu bằng RoomDatabase

Chúng ta cùng tìm hiểu cách sử dụng của Room nhé

Các em thêm dòng thư viện vào file build.gradle trước nhé :
(Phiên bản mới nhất khi thầy viết bài này là 2.1.0)

implementation "androidx.room:room-runtime:2.1.0"
annotationProcessor "android.arch.persistence.room:compiler:2.1.0"
 

Để dễ hiểu, thầy sẽ tạo 1 bảng NguoiDung với các thuộc tính bao gồm id, ten, sdt là các cột như sau :

Bước 1 : tạo 1 Entity là class NguoiDung như sau :

Khai báo biến id là khóa chính với cú pháp @PrimaryKey phía trên biến
cột với cú pháp @ColumnInfo

Bước 2 : Khởi tạo các câu lệnh truy vấn

Bước 3 : Khởi tạo cơ sở dữ liệu

Cuối cùng chúng ta khởi tạo csdl trên MainActivity như sau :

Lưu ý : khi sử dụng các câu lênh truy vấn với Room thì chúng ta cần tạo AsyncTask để mở luồng riêng tránh gây lag cho thiết bị còn nếu chúng ta sử dụng luôn trên luồng chính thì thêm câu lệnh allowMainThreadQueries() như hình trên

Test thử các câu lệnh lấy danh sách hoặc thêm, xóa User

Code mẫu : https://github.com/huuhuybn/AndroidRoom

Các câu lệnh truy vấn tiêu biểu khác :

Truy vấn với câu điều kiện Where, tham số id truyền dưới cú pháp “: + tên biến”

Chúc các em code vui vẻ, mọi câu hỏi các em tạo bài trên nhóm Học lập trình Android – Huy Nguyễn nhé. 🙂