Thiết lập Realm cho Android

Nếu bạn đã cập nhật xu hướng mới nhất trong phát triển Android, thì bạn có thể đã nghe nói về Realm. Realm là cơ sở dữ liệu nhẹ, có thể thay thế cả thư viện SQLite và ORM trong dự án Android của bạn.

So với SQLite, Realm nhanh hơn và có rất nhiều tính năng hiện đại, chẳng hạn như hỗ trợ JSON, một API linh hoạt, thông báo thay đổi dữ liệu và hỗ trợ mã hóa, tất cả đều nhằm giúp cho các nhà phát triển Android dễ dàng hơn.

Trong hướng dẫn nhanh này, bạn sẽ tìm hiểu cơ bản về Realm cho Android. Trong hướng dẫn này, tôi sẽ sử dụng Realm v0.84.1.

Để sử dụng Realm trong một dự án Android, bạn cần phải thêm nó như là một phụ thuộc compile trong tập tin build.gradle của mô-đun app.

Một Realm tương tự như một cơ sở dữ liệu SQLite. Nó có một tập tin liên kết với nó, trong đó, sau khi được tạo ra, sẽ tồn tại cố định trên hệ thống tập tin của Android.

Để tạo Realm mới, bạn có thể gọi phương thức tĩnh Realm.getInstance từ bên trong bất kỳ Activity.

Lưu ý rằng gọi Realm.getInstance, mà không truyền vào nó một RealmConfiguration, kết quả tạo ra một tập tin Realm được gọi là default.realm.

Nếu bạn muốn thêm Realm vào ứng dụng của bạn, bạn phải sử dụng một đối tượng RealmConfiguration.Builder và cung cấp tập tin Realm một cái tên duy nhất.

Bất kỳ JavaBean đều có thể được lưu trữ trong một Realm một khi nó thừa kế lớp RealmObject. Nếu bạn đang tự hỏi một JavaBean là gì, nó chỉ đơn giản là một lớp serializable trong Java, có một hàm xây dựng mặc định, và có các phương thức getter/setter cho các biến thành viên của nó. Ví dụ, các đối tượng của lớp sau đây có thể dễ dàng được lưu trữ một trong một Realm:

Nếu bạn muốn sử dụng một biến thành viên của một RealmObject như là một khóa chính, bạn có thể sử dụng chú thích @PrimaryKey. Ví dụ, ở đây là cách bạn có thể thêm một khóa chính được gọi là code vào lớp Country:

Mặc dù đọc dữ liệu từ một Realm là rất đơn giản, nhưng như bạn sẽ thấy trong bước tiếp theo, ghi dữ liệu vào nó phức tạp hơn một chút. Realm phù hợp với ACID và để đảm bảo tính nguyên tử và nhất quán, Realm bắt buộc bạn thực hiện tất cả các hoạt động ghi bên trong một giao dịch.

Để bắt đầu một giao dịch mới, sử dụng phương thức beginTransaction. Tương tự, để kết thúc giao dịch, sử dụng phương thức commitTransaction.

Dưới đây là cách bạn có thể tạo và lưu một đối tượng của lớp Country:

Bạn có thể thấy rằng country1 không được tạo ra bằng cách sử dụng hàm xây dựng của lớp Country. Để cho một Realm quản lý một đối tượng của một RealmObject, thì đối tượng phải được tạo ra bằng cách sử dụng phương thức createObject.

Nếu bạn phải sử dụng hàm xây dựng, đừng quên sử dụng phương thức copyToRealm của đối tượng Realmcó liên quan trước khi bạn thực hiện giao dịch. Dưới đây là một ví dụ:

Realm cung cấp một API rất trực quan và linh hoạt để tạo các truy vấn. Để tạo một truy vấn, sử dụng phương thức where của đối tượng Realm có liên quan và truyền vào lớp của các đối tượng mà bạn quan tâm đến. Sau khi tạo truy vấn, bạn có thể lấy toàn bộ kết quả bằng cách sử dụng phương thức findAll, nó trả về một đối tượng RealmResults. Trong ví dụ sau, chúng ta lấy và in tất cả các đối tượng của kiểu Country:

Realm cung cấp một số phương thức được đặt tên thích hợp, chẳng hạn như beginsWithendsWithlesserThan và greaterThan, bạn có thể sử dụng để lọc kết quả. Các code sau đây cho bạn thấy cách bạn có thể sử dụng phương thức greaterThan để chỉ lấy những đối tượng Country có population (dân số) là lớn hơn 100 triệu:

Nếu bạn muốn sắp xếp kết quả của truy vấn, bạn có thể sử dụng phương thức findAllSorted. Đối với các đối số của nó, nó nhận một String chỉ định tên của trường để sắp xếp và một boolean xác định thứ tự sắp xếp.

Trong hướng dẫn nhanh này, bạn đã biết cách làm thế nào để sử dụng Realm trong một dự án Android. Bạn đã thấy việc tạo cơ sở dữ liệu Realm đơn giản thế nào, lưu trữ dữ liệu trong đó, và truy vấn nó. Để tìm hiểu thêm về Realm cho Android, bạn có thể xem qua tài liệu hướng dẫn Java của nó.

Nguồn: https://code.tutsplus.com/vi/tutorials/up-and-running-with-realm-for-android–cms-25241

Related posts