Giới thiệu 5 ORMs Android tốt nhất

nuong

Thành viên
Tham gia
16/5/2011
Bài viết
0
Nếu bạn đang phát triển một ứng dụng Android, bạn có thể sẽ cần để lưu trữ dữ liệu ở đâu đó. Bạn có thể chọn một dịch vụ đám mây (trong trường hợp này, sử dụng một SyncAdapter sẽ là một ý tưởng tốt), hoặc để lưu trữ dữ liệu của bạn trong cơ sở dữ liệu SQLite nhúng. Nếu bạn có những lựa chọn thứ hai, bạn sẽ phải quyết định bằng văn bản giữa các truy vấn SQL, sử dụng một nhà cung cấp nội dung (hữu ích nếu bạn muốn chia sẻ dữ liệu của bạn với các ứng dụng khác), hoặc bằng cách sử dụng một ORM.

Trong bài viết này, tôi sẽ thảo luận một số ORMs Android, bạn có thể xem xét sử dụng trong ứng dụng của bạn.


OrmLite

OrmLite là ORM Android đầu tiên mà nói đến cái tâm của tôi. Tuy nhiên OrmLite không phải là một ORM Android, đó là một ORM Java với cơ sở dữ liệu SQL hỗ trợ. Nó có thể được sử dụng bất cứ nơi nào Java được sử dụng, chẳng hạn như kết nối JDBC, Spring, và cũng Android.

Nó làm cho việc sử dụng nặng của chú thích, chẳng hạn nhưDatabaseTable cho mỗi class định nghĩa một bảng, hoặcDatabaseField cho từng lĩnh vực trong lớp.

Một ví dụ đơn giản của việc sử dụng OrmLite để xác định một bảng sẽ là một cái gì đó như thế này:

Mã:
@DatabaseTable(tableName = "users")
public class User {
 @DatabaseField(id = true)
 private String username;
 @DatabaseField
 private String password;

 public User() {
 // ORMLite needs a no-arg constructor
 }
 public User(String username, String password) {
 this.username = username;
 this.password = password;
 }

 // Implementing getter and setter methods
 public String getUserame() {
 return this.username;
 }
 public void setName(String username) {
 this.username = username;
 }
 public String getPassword() {
 return this.password;
 }
 public void setPassword(String password) {
 this.password = password;
 }
}

OrmLite cho Android là mã nguồn mở và bạn có thể tìm thấy nó trên GitHub. Để biết thêm thông tin đọc tài liệu chính thức của mình ở đây.

SugarORM

SugarORM là một ORM xây dựng chỉ dành cho Android. Nó đi kèm với một API mà là cả hai đơn giản để tìm hiểu và đơn giản để nhớ. Nó tạo ra các bảng cần thiết của chính nó, cung cấp cho bạn một phương pháp đơn giản của việc tạo ra một-một, một-nhiều mối quan hệ, và cũng đơn giản hóa CRUD bằng cách sử dụng chỉ có 3 chức năng, save(), delete() và find() (hoặc findById()).

Cấu hình ứng dụng của bạn để sử dụng SugarORM bằng cách thêm bốn thẻ meta-data để AndroidManifest.xml ứng dụng của bạn:


Mã:
<meta-data android:name="DATABASE" android:value="my_database.db" />
<meta-data android:name="VERSION" android:value="1" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" />

Bây giờ bạn có thể sử dụng ORM này bằng cách mở rộng nó trong các lớp bạn cần phải thực hiện vào các bảng, như thế này:
Mã:
public class User extends SugarRecord<User> {
 String username;
 String password;
 int age;
 @Ignore
 String bio; //this will be ignored by SugarORM

 public User() { }

 public User(String username, String password,int age){
 this.username = username;
 this.password = password;
 this.age = age;
 }
}

So adding a new user would be:


Mã:
User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database

Xóa tất cả người dùng của tuổi 19 sẽ là:
Mã:
List<User> nineteens = User.find(User.class,"age = ?",new int[]{19});
foreach(user in nineteens) {
 user.delete();
}

Để biết thêm, đọc tài liệu trực tuyến của SugarORM.

GreenDAO
Khi nói đến hiệu suất, 'nhanh' và GreenDAO là đồng nghĩa. Như đã nêu trên trang web của mình, "hầu hết các thực thể có thể được chèn, cập nhật và tải ở mức vài nghìn đơn vị mỗi giây". Nếu nó không phải là tốt, các ứng dụng này sẽ không được sử dụng nó. So với OrmLite, nó là nhanh gần như gấp 4,5 lần.
greenDAO-performance.png

>> Khóa học lập trình android tại hà nội
greenDAO vs OrmLite
Nói về kích thước, nó nhỏ hơn 100KB, vì vậy không ảnh hưởng đến kích thước apk rất nhiều.

Thực hiện theo hướng dẫn này, trong đó sử dụng Android Studio dụng để hiển thị các GreenDAO trong một ứng dụng Android. Bạn có thể xem mã nguồn GreenDAO trên GitHub, và đọc các tài liệu chính thức GreenDAO.

Hoạt động Android

Giống như ORMs khác, ActiveAndroid giúp bạn lưu trữ và lấy hồ sơ từ SQLite mà không cần viết các truy vấn SQL.

Bao gồm ActiveAndroid trong dự án của bạn liên quan đến việc thêm một tập tin jar vào thư mục / libs của dự án Android của bạn. Như đã nêu trong hướng dẫn về khởi đầu, bạn có thể sao chép mã nguồn từ GitHub và biên dịch nó bằng cách sử dụng Maven. Sau đó có nó, bạn nên thêm các thẻ meta-data vào AndroidManifest.xml của ứng dụng của bạn:

<meta-data android:name="AA_DB_NAME" android:value="my_database.db" />
<meta-data android:name="AA_DB_VERSION" android:value="1" />


After adding these tags, you can call ActiveAndroid.initialize() in your activity like this:

Mã:
public class MyActivity extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 ActiveAndroid.initialize(this);

 //rest of the app
 }
}

Bây giờ là ứng dụng được cấu hình để sử dụng ActiveAndroid, bạn có thể tạo ra các mô hình như các lớp Java bằng cách sử dụng chú thích:

Mã:
@Table(name = "User")
public class User extends Model {
 @Column(name = "username")
 public String username;

 @Column(name = "password")
 public String password;

 public User() {
 super();
 }

 public User(String username,String password) {
 super();
 this.username = username;
 this.password = password;
 }
}

Đây là một ví dụ đơn giản về cách sử dụng ActiveAndroid. Các tài liệu này sẽ giúp bạn hiểu được cách sử dụng của ActiveAndroid ORM hơn nữa.

Realm

Cuối cùng Realm là một 'yet-to-đi' ORM cho Android mà hiện nay chỉ tồn tại. Nó được xây dựng trên C ++, và chạy trực tiếp trên phần cứng của bạn (không hiểu) mà làm cho nó thực sự nhanh chóng. Các mã cho iOS là mã nguồn mở, và bạn có thể tìm thấy nó trên GitHub.

Trên trang web của bạn sẽ tìm thấy một số trường hợp sử dụng của Realm trong cả Objective-C và Swift, và cũng là một hình thức đăng ký để có được những tin tức mới nhất cho phiên bản Android.

Final Words

Đây không chỉ là các ORMs Android trên thị trường. Các ví dụ khác là Androrm và ORMDroid.

Kiến thức SQL là một kỹ năng mà mỗi nhà phát triển cần phải có, nhưng viết các truy vấn SQL là nhàm chán, đặc biệt là khi có rất nhiều ORMs ra ở đó. Khi họ làm cho công việc của bạn đơn giản, tại sao không sử dụng chúng trong những nơi đầu tiên?

>> Xem thêm: Khóa hoc photoshop tai ha noi
 
×
Quay lại
Top