07/09/2018, 18:08

Sugar ORM trong android

Xin chào mọi người, hôm nay tiếp tục là một bài viết về ORM Database trong android. Bài viết này mình sẽ giới thiệu về một ORM đó là Sugar ORM. Vậy Sugar ORM là gì ? Nó là một thư viện database giúp cho các lập trình viên thao tác được thuận tiện và đơn giản hơn. Nhưng tại sao lại dùng đến Sugar, ...

Xin chào mọi người, hôm nay tiếp tục là một bài viết về ORM Database trong android.
Bài viết này mình sẽ giới thiệu về một ORM đó là Sugar ORM.
Vậy Sugar ORM là gì ? Nó là một thư viện database giúp cho các lập trình viên thao tác được thuận tiện và đơn giản hơn. Nhưng tại sao lại dùng đến Sugar, sẽ có những lý do sau đây:

1. Nó loại bỏ việc viết các truy vấn SQL để tương tác với SQLite db.
2.Nó sẽ giúp tạo ra cơ sở dữ liệu của bạn.
3.Nó quản lý mối quan hệ theo các đối tượng thuận tiện cho việc xử lý
4.Nó cung cấp cho bạn các API rõ ràng và đơn giản cho các hoạt động tương tác với DB 

Vậy Sugar cung cấp cho ta những gì ?

  1. Tạo ra DB một cách đơn giản
  2. Có các API đơn giản để giải quyết các vấn đề cơ bản như thêm, sửa , xóa...

Sử dụng như thế nào ?

1. Bạn cần phải thêm thư viện

trong file Gradle thêm như các thư viện thông thường khác
compile 'com.github.satyan:sugar:1.3

2.Configuration trong AndroidManifest.xml

<application android:label="@string/app_name" android:icon="@drawable/icon"
android:name="com.orm.SugarApp">
.
.
<meta-data android:name="DATABASE" android:value="sugar_example.db" />
<meta-data android:name="VERSION" android:value="2" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" />
.
.
</application>

trong đó thẻ meta-data chứa các thông tin sau:

  • DATABASE : Tên của DB bạn muốn taọ ra
  • VERSION: Version của DB
  • QUERY_LOG :Log sẽ được generate khi set value bằng true
  • DOMAIN_PACKAGE_NAME: Tên của package trong project của bạn.

3. Entities

Việc tạo ra một table với sugar khá đơn giản, chỉ cần extend SugarRecord

public class Book extends SugarRecord<Book> {
   String title;
  String edition;
  public Book(){
  }
  public Book(String title, String edition){
    this.title = title;
    this.edition = edition;
  }
}

4. Sử dụng

Save

Book book = new Book(ctx, "Title here", "2nd edition")
book.save();

Load

    Book book = Book.findById(Book.class, 1);

Update

Book book = Book.findById(Book.class, 1);
book.title = "updated title here"; // modify the values
book.edition = "3rd edition";
book.save(); // updates the previous entry with new values.

Delete

    Book book = Book.findById(Book.class, 1);
    book.delete()

DeleteAll

List<Book> books = Book.listAll(Book.class);
Book.deleteAll(Book.class);

Kết thúc

Để biết thêm chi tiết , bạn có thể truy cập vào http://satyan.github.io/sugar/getting-started.html .
Bài viết được tham khảo từ http://satyan.github.io/sugar/

0