天天看點

Android資料庫Realm實踐

android開發中常用的資料庫有5個:

ormlite 不是 android 平台專用的orm架構,它是java orm。支援jdbc連接配接,spring以及android平台。文法中廣泛使用了注解(annotation)。

sugarorm 是 android 平台專用orm。提供簡單易學的apis。可以很容易的處理1對1和1對多的關系型資料,并通過3個函數save(), delete() 和 find() (或者 findbyid()) 來簡化crud基本操作。

當性能很重要時(資料通路頻繁),greendao是一個很快的解決方案,它能夠支援數千條記錄的crud每秒,和ormlite相比,greendao要快幾乎4.5倍。(準确資料請自行benchmark)。

greendao小于100kb,是以對于應用程式apk的大小影響很小。

active record(活動目錄)是yii、rails等架構中對orm實作的典型命名方式。active android 幫助你以面向對象的方式來操作sqlite。

在你的項目中包含active android,你需要在項目的 /libs 目錄下添加一個jar檔案。可以從github中擷取源代碼并使用maven進行編輯。

realm 是一個将可以使用的android orm,基于c++編寫,直接運作在你的裝置硬體上(不需要被解釋),是以運作很快。它同時是開源跨平台的,ios的代碼可以在github找到,你還可以找到objective c以及swift編寫的realm使用執行個體。

相比sqlite,realm更快并且具有很多現代資料庫的特性,比如支援json,流式api,資料變更通知,以及加密支援,這些都為安卓開發者帶來了友善。

ream提供了五種程式設計方式的實作。分别是java,objective

c,swift,react-native,tamarin。在這裡我着重介紹在android中的使用。

Android資料庫Realm實踐

快速入門:

目前我們還不支援 android 以外的 java 環境;

android studio >= 1.5.1 ;

較新的 android sdk 版本;

jdk 版本 >=7;

我們支援 android api 9 以上的所有版本(android 2.3 gingerbread 及以上)。

建構依賴關系

第一步: 在項目的 build.gradle 檔案中添加如下 class path 依賴。

項目的 <code>build.gradle</code> 檔案在如下位置:

Android資料庫Realm實踐

第二步: 在 app 的 build.gradle 檔案中應用 <code>realm-android</code> 插件。

app的 <code>build.gradle</code> 檔案在如下位置:

Android資料庫Realm實踐

如果讀者使用的是maven建構項目,官方也有說明,這裡我就不列出來了。

說到這裡,我們已經迫不及待的想嘗試下了。

1,application裡面初始化

2,建立工具管理類,擷取realm執行個體

3,建立一個realmobject對象,存儲object

例如,我們現在需要存儲一個人(person)對象,注意,這裡的成員屬性為了realm的序列化,都寫成私有的

4,定義幾個crud的方法,供其它類實作

5,對象的具體實作

6,測試

其實這和以前的用法差不多的,有點在于,realm去幫我們管理這個資料庫,并且在安全上我這還沒有講到,這裡隻講了基本用法,大家可以去看看官方的文檔說明:

<a target="_blank" href="https://realm.io/cn/docs/java/latest/">官方文檔</a>