بهترین لایبرری های ORM برای اندروید

معرفی شش لایبرری برتر ORM برای اندروید


در بسیاری از اپلیکیشن های اندروید نیاز است تا اطلاعات را از دیتابیس دریافت کنیم، اما گاهی اوقات تعداد درخواست های ارسال شده برای دیتابیس بسیار زیاد است و از این رو نیاز میشود تا از یک ORM برای بهینه سازی عملکرد اپلیکیشن و کاهش حجم عملیات استفاده کرد و روی سایر قسمت های اپلیکیشن متمرکز شد.

در این مطلب قصد دارم به معرفی 6 لایبرری برتر ORM بپردازم. امید است تا پس از مطالعه این مطلب، انتخاب خوبی داشته باشید و بتوانید بهترین لایبرری را بسته به نیازمندی های پروژه خود انتخاب کنید.

 

Room

گوگل در رویداد I/O 2017 خود به معرفی Room پرداخت که در حقیقت یک لایبرری برای SQLite آبجکت مپینگ میباشد و همخوانی خوبی با Clear Architecture دارد.

 

وبسایت: https://developer.android.com/topic/libraries/architecture/room.html

 

OrmLite

Object Relational Mapping Lite یا همان OrmLite یک ORM ساده و کم حجم است و فریم ورک های مختلف جاوا مانند Spring نیز از این ORM پشتیبانی میکنند.

OrmLite از فراخوانی های نیتیو به دیتابیس SQLite اندروید پشتیبانی میکند و در وبسایت آن هم میتوانید مستندات مختص به اندروید را به صورت جداگانه بیابید.

 

@DatabaseTable(tableName = "account")
public class Account {
    @DatabaseField(id = true)
    private String username;
     
    @DatabaseField(canBeNull = false)
    private String password;
     
    Account() {
        // a must defined no-arg constructor
    }
    public Account(String username, String password) {
        this.username = username;
        this.password = password;
    }
    //...getter and setter methods can go below
}

 

OrmLite منبع باز بوده و در GitHub میتوانید آن را بیابید.

 

وبسایت: http://ormlite.com

 

ActiveAndroid

این ORM به شما امکان میدهد تا بدون نوشتن دستورات SQL، رکوردهای دیتابیس SQLite را ذخیره و بازیابی کنید.

لایبرری تمامی عملیات و تنظیمات را انجام میدهد و تنها با چندین کد ساده و تنظیمات ابتدایی میتوانید از آن استفاده کنید.

میتوانید فایل JAR را دانلود کرده یا با استفاده از کامند ant، فولدر لایبرری را کامپایل کنید.

 

@Table(name = "Books")
public class Item extends Model {
    @Column(name = "Name")
    public String name;
 
    @Column(name = "Price")
    public float price;
 
    @Column(name = "Publisher")
    public String publisher;
}

 

وبسایت: http://www.activeandroid.com

 

GreenDAO

در صورتی که پروژه تان جدول های زیادی از داده ها دارد، بهتر است از این لایبرری استفاده کنید. greenDAO سریع ترین لایبرری ORM برای اندروید محسوب میشود. اپلیکیشن هایی مانند Pintrest و Path که بیش از 10 میلیون نصب داشته اند نیز از این لایبرری استفاده کرده اند.

 

 

در زیر نمونه ای از ساخت آبجکت و افزودن ویژگی های مختلف به آن را مشاهده میکنید:

 

Entity account = schema.addEntity("Account");
account.addIdProperty();
account.addStringProperty("username");
account.addStringProperty("password");

 

وبسایت: http://greenrobot.org/greendao

 

SugarORM

SugarORM یک لایبرری ORM است که تنها برای اندروید ساخته شده و هدف آن ساده سازی تعاملات با دیتابیس SQLite میباشد.

 

public class Game extends SugarRecord {
  String title;
  String developer;
 
  public Game(){
  }
 
  public Game(String title, String developer){
    this.title = title;
    this.developer = developer;
  }
}

 

//Add new 
Game game = new Game("Uncharted 4", "Naughty Dog");
game.save();
//find and delete a game 
Game game = Game.findById(Game.class, 1);
game.delete();
//list all games
List<Game> games = Game.listAll(Game.class);
Game.deleteAll(Game.class);

 

وبسایت: http://satyan.github.io/sugar/index.html

 

DBFlow

DBFlow یک لایبرری ساده و قدرتمند برای کار با دیتابیس اندروید است که پردازش annotation نیز دارد. در طراحی آن به فاکتورهایی از قبیل سرعت، عملکرد بالا و سهولت در استفاده توجه ویژه ای شده است. با استفاده از API ساده و قدرتمند آن، تعداد کدهای مورد نیاز برای برقراری ارتباط با دیتابیس و تعامل با آن کاهش می یابد. DBFlow جایگزین کارآمدتر و قدرتمندتری نسبت به سایر ORMهای اندروید به شمار میرود. بر اساس بنچمارک خود توسعه دهنده، DBFlow پرسرعت ترین لایبرری ORM برای اندروید میباشد.

 

//define a database
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public class AppDatabase {
    public static final String NAME = "App";
    public static final int VERSION = 1;
}
//define a table
@Table(databaseName = AppDatabase.NAME)
public class TestModel1 extends BaseModel {
    @Column(columnType = Column.PRIMARY_KEY)
    public
    String name;
}

 

وبسایت: https://github.com/Raizlabs/DBFlow

 

سایر لایبرری های ORM اندروید:

Requery: یک لایبرری مدرن SQL در اندروید میباشد. این لایبرری رابط های مدرنی را در اختیارتان قرار میدهد تا با استفاده از آنها بتوانید کوئری بزنید.

Ollie: یک ORM کامپایل-تایم برای اندروید است که از RxJava نیز پشتیبانی میکند.

RushOrm: مشابه سایر لایبرری ها، RushOrm با مپینگ کلاس های جاوا به جدول های SQL، نیاز به زدن کوئری های مختلف را کاهش میدهد. میتوان این لایبرری را در پروژه هایی که ساختار داده ای پیچیده ای دارند یا از Rest API استفاده میکنند، به کار برد.

 

اینها را هم بخوانید