最受歡迎的5個Android ORM框架

在開發Android應用時,保存數據有這麼幾個方式, html

一個是本地保存,一個是放在後臺(提供API接口),還有一個是放在開放雲服務上(如 SyncAdapter 會是一個不錯的選擇)。 java

對於第一種方式,即本地數據存儲,如嵌入式SQLite,你能夠選擇直接使用SQL語句、Content Provider 或 ORM(對象關係數據映射)。 android

對於 Android 應用的開發,主要是使用Java語言,因此適用於Java語言的一些ORM,也能移植於 Android 平臺上。 git

下面是5個可用ORM的整體介紹: github

1. OrmLite

OrmLite 不是 Android 平臺專用的ORM框架,它是Java ORM。支持JDBC鏈接,Spring以及Android平臺。語法中普遍使用了註解(Annotation)。 sql

官方網站:http://ormlite.com/sqlite_java_android_orm.shtml swift

2. SugarORM

SugarORM 是 Android 平臺專用ORM。提供簡單易學的APIs。能夠很容易的處理1對1和1對多的關係型數據,並經過3個函數save(), delete() 和 find() (或者 findById()) 來簡化CRUD基本操做。 android-studio

要啓用SugarORM,須要在你的應用程序 AndroidManifest.xml 配置中添加以下meta-data標籤: app

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

而後就能夠從SugarORM擴展須要保存的數據類: 框架

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

官方網站:http://satyan.github.io/sugar/getting-started.html

3. GreenDAO

當性能很重要時(數據訪問頻繁),GreenDao是一個很快的解決方案,它可以支持數千條記錄的CRUD每秒,和OrmLite相比,GreenDAO要快幾乎4.5倍。(準確數據請自行benchmark)。

greenDAO vs OrmLite

GreenDAO小於100KB,因此對於應用程序APK的大小影響很小。

這裏有一個教程,演示如何使用Android Studio,在Android應用程序中使用GreenDAO框架。

官方網站:http://greendao-orm.com/

4. Active Android

Active Record(活動目錄)是Yii、Rails等框架中對ORM實現的典型命名方式。Active Android 幫助你以面向對象的方式來操做SQLite。
在你的項目中包含Active Android,你須要在項目的 /libs 目錄下添加一個jar文件。能夠從Github中獲取源代碼並使用Maven進行編輯。而後你應該添加這些meta-data到你應用程序的 AndroidManifest.xml 配置中:

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

而後在你的Activity中調用 ActiveAndroid.initialize() 方法:

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

        //rest of the app
    }
}

如今,你能夠使用Java註解來建立模型類:

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

官方網站:http://www.activeandroid.com/

5. Realm

Realm 是一個將能夠使用的Android ORM,基於C++編寫,直接運行在你的設備硬件上(不須要被解釋),所以運行很快。它同時是開源跨平臺的,iOS的代碼能夠在GitHub找到,你還能夠找到Objective-C以及Swift編寫的Realm使用實例。

官方網站:http://realm.io/

相關文章
相關標籤/搜索