معرفی دو ORM برای استفاده در برنامه‌نویسی اندروید

اگر برنامه نویس اندروید هستید، احتمالا نیاز خواهید داشت که داده ها رو در دیتابیس ذخیره کنید. برای اینکار ممکنه از یک سرویس ابری استفاده کنید یا اینکه داده‌ها رو تو خود دیتابیس اپلیکیشن (احتمالا SQLite) و داخل خود گوشی ذخیره کنید. اگر راه‌کار دوم رو انتخاب کنید باید یا کوئریهای دیتابیس رو خودتون بنویسید یا از یک ORM استفاده کنید.

ORM که مخفف Object Relational Mapping است، در علم کامپیوتر به معنای تکنیکی است که دو نوع داده‌ای متفاوت رو (نوع Object و نوع داده‌ای موجود تو Relational Databaseها) به هم تبدیل میکنه. اینجا وقتی ما از ORM حرف میزنیم منظور کتابخونه‌ایه که این کار رو برای ما انجام میده. من در اینجا قصد دارم دوتا کتابخونه ORM که تو اندروید استفاده میشه رو معرفی کنم.

OrmLite

OrmLite مخصوص اندروید نیست، اما چون با جاوا نوشته شده هر جایی که جاوا باشه این هم قابل استفاده‌ست. جاهایی مثل اندروید، کانکشن‌های JDBC و فریم‌ورک Spring.

یک نمونه کلاس User که با این ORM نوشته بشه به شکل زیره:

 

@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 متن بازه و میتونید کدش رو از این لینک گیت‌هاب ببینید.

SugarORM

SugarORM فقط مخصوص اندروید نوشته شده و نحوه‌ی استفاده ازش ساده‌ست. خودش جدولهای مورد نیازتون رو میسازه و برای ایجاد انواع Relationship  متدهای ساده‌ای رو در اختیار شما قرار میده. این کتابخونه عملیات CRUD رو با سه متد زیر انجام میده:  delete() , save() , find() .

برای اینکه از این کتابخونه استفاده کنید باید این چهار meta-data رو به manifest اضافه کنید:

<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" />

حالا میتونید یه کلاس User رو به شکل زیر بسازید:

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;
    }
}

 

و به این صورت ساختن یک user جدید به شکل زیر خواهد بود:

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

 

یا تمام کاربرانی که سنشون ۱۹ است رو پاک کنید:

List<User> nineteens = User.find(User.class,"age = ?",new int[]{19});
foreach(user in nineteens) {
    user.delete();
}

 

برای توضیحات بیشتر، داکیومنت SugarORM  رو از اینجا بخونید.

راستی برای اضافه کردن SugarORM  به پروژه تنها کافیه خط زیر رو به dependencyهای Gradle اضافه کنید:

compile 'com.github.satyan:sugar:1.3'

 

 

3 پاسخ به “معرفی دو ORM برای استفاده در برنامه‌نویسی اندروید”

  1. مهسا گفت:

    مرسی خیلی خوب بود

  2. عباس گفت:

    SugarORM فوق العاده کند هست و OrmLite هم مخصوص اندروید نیست .

    من dbflow رو پیشنهاد میکنم که معروف ترین orm اندروید هست و از زبان کاتلین هم پشتیبانی میکنه و فوق العاده پیشرفته و سریعه و باهاش میتونید از rx ها هم استفاده کنید و async , sync رو هم پشتیبانی میکنه .

  3. arian گفت:

    salam lotf koni manba moshakhasi ya video amozedshi khob bara estefade az orm lite moarefi koni

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین