亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Realm for Android快速入門教程

2019-11-09 18:04:51
字體:
來源:轉載
供稿:網友

英文原文:Up and Running With Realm for Android 

介紹

如果你關注安卓開發的最新趨勢,你可能已經聽說過Realm。Realm是一個可以替代SQLite以及ORMlibraries的輕量級數據庫

相比SQLite,Realm更快并且具有很多現代數據庫的特性,比如支持JSON,流式api,數據變更通知,以及加密支持,這些都為安卓開發者帶來了方便。

在這篇快速入門教程中,你將學到Android版Realm的基礎知識。本教程我們使用的是Realm v0.84.1。

1. 添加Realm到工程

要在安卓工程中使用Realm,你需要在module的build.gradle文件中添加一個依賴:

compile 'io.realm:realm-android:0.84.1'

2. 創建一個Realm

一個Realm相當于一個SQLite數據庫。它有一個與之對應的文件,一旦創建將持久保存在安卓的文件系統中。

要創建一個新的Realm,你可以在任意Activity中調用靜態方法Realm.getInstance。

Realm myRealm = Realm.getInstance(context);

注意,調用Realm.getInstance,而沒有傳入RealmConfiguration,會創建一個叫做 default.realm的Realm文件。

如果你想向app中添加另一個Realm,必須使用一個RealmConfiguration.Builder對象,并為Realm 文件指定一個獨有的名字。

Realm myOtherRealm =        Realm.getInstance(                new RealmConfiguration.Builder(context)                        .name("myOtherRealm.realm")                        .build());

3. 創建一個RealmObject

只要繼承了RealmObject類,任意javaBean都能存儲在Realm中。不知道JavaBean是什么?它就是一個可序列化的java類,有默認構造器,成員變量有相應的getter/setter方法。比如,下面這個類的實例就能輕松的存儲在一個Realm中:

public class Country extends RealmObject {     PRivate String name;    private int population;     public Country() { }     public String getName() {        return name;    }     public void setName(String name) {        this.name = name;    }     public int getPopulation() {        return population;    }     public void setPopulation(int population) {        this.population = population;    } }

 如果你想讓RealmObject的一個成員變量作為主鍵,你可以使用@PrimaryKey注解。比如,這里演示了如何為Country類添加一個主鍵code:

@PrimaryKeyprivate String code; public String getCode() {    return code;} public void setCode(String code) {    this.code = code;}

4. 創建transaction

雖然從一個Realm讀取數據非常簡單(下一節有講),但是向它寫入數據就稍微復雜一點。Realm遵循 ACID (數據庫事務正確執行的四個基本要素的縮寫)規范,為了確保原子性和一致性,它強制所有的寫入操作都在一個事務中執行。

要開始一個新的事務,使用beginTransaction方法。類似地,要結束這個事務,使用commitTransaction方法。

注:事務即英文里面的transaction。

這里演示了如何創建和保存一個Country類的實例:

myRealm.beginTransaction();     // Create an object    Country country1 = myRealm.createObject(Country.class);      // Set its fields    country1.setName("Norway");    country1.setPopulation(5165800);    country1.setCode("NO"); myRealm.commitTransaction();

你可能注意到了country1并不是用Country類的構造器創建的。對于一個Realm來說,管理一個RealmObject的實例,這個實例必須用createObject方法創建。

如果你必須使用構造器,別忘了在提交事務前使用相關Realm對象的copyToRealm方法。這里是示例:

// Create the objectCountry country2 = new Country();country2.setName("Russia");country2.setPopulation(146430430);country2.setCode("RU"); myRealm.beginTransaction();    Country copyOfCountry2 = myRealm.copyToRealm(country2);myRealm.commitTransaction();

注:copyToRealm方法還有一個很重要的作用就是可以把已經存在的對象直接拷貝進Realm數據庫。

5. 書寫查詢

Realm為創建查詢提供了一套非常直觀和流式的API。要創建一個查詢,使用相關Realm對象的where方法并傳入你感興趣的對象的類。創建完查詢之后,你可以使用返回一個RealmResults對象的findAll方法獲取所有的結果,findAll。在下面的例子中,我們獲取并打印Country的所有對象:

RealmResults<Country> results1 =        myRealm.where(Country.class).findAll(); for(Country c:results1) {    Log.d("results1", c.getName());} // Prints Norway, Russia

Realm提供了幾個命名非常貼切的方法,比如beginsWith, endsWith,lesserThan 和 greaterThan,可以用來過濾,篩選結果。下面的代碼演示了如何使用greaterThan方法來獲取population(人口)大于1億的Countryobjects:

RealmResults<Country> results2 =        myRealm.where(Country.class)                .greaterThan("population", 100000000)                .findAll(); // Gets only Russia

如果你想查詢結果被歸類,你可以使用findAllSorted方法。在它的參數中,用一個String指定被歸類field的名字,并用一個boolean指定歸類順序。

// Sort by name, in descending orderRealmResults<Country> results3 =        myRealm.where(Country.class)                .findAllSorted("name", false); // Gets Russia, Norway

總結

在這篇快速入門中,你學到了如何在安卓項目中使用Realm??梢钥吹絼摻ㄒ粋€Realm數據庫、存儲查詢數據是多么的容易。要學習更多t Realm for Android的知識,你可以查閱它的 Java 文檔。

原文地址戳這里


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日韩在线播放| 久久久久日韩精品久久久男男| 国产精品久久久久久久7电影| 久久99视频免费| 欧美日韩高清在线观看| 亚洲国内精品视频| 欧美国产日本高清在线| 欧美成人精品在线观看| 91在线免费看网站| 中文字幕最新精品| 亚洲一区中文字幕| 九九久久久久99精品| 中文字幕在线成人| 亚洲有声小说3d| 精品一区二区三区四区在线| 国内精品小视频| 精品视频在线播放免| 亚洲精品视频网上网址在线观看| 91av国产在线| 亚洲综合第一页| 国产精品久久久| 国产精品吹潮在线观看| 97涩涩爰在线观看亚洲| 日韩美女写真福利在线观看| 亚洲美女动态图120秒| 精品久久久久久亚洲国产300| 国产成人短视频| 日韩成人在线观看| 亚洲女人天堂成人av在线| 九九热精品视频在线播放| 日韩女在线观看| 日韩精品视频在线观看网址| 色爱av美腿丝袜综合粉嫩av| 91精品国产91久久久久久| 国产欧美一区二区三区在线| 成人免费视频网| 亚洲天堂色网站| 国产精品黄页免费高清在线观看| 欧美极品欧美精品欧美视频| 成人性生交大片免费看视频直播| 日韩精品视频在线观看免费| 亚洲女性裸体视频| 91九色国产在线| 亚洲性av在线| 91av视频导航| 国产精品中文在线| 成人疯狂猛交xxx| 亚洲第一天堂av| 国产成人精品优优av| 97av视频在线| 美女黄色丝袜一区| 国产精品美女主播在线观看纯欲| 国产精品视频资源| 亚洲一区二区黄| 亚洲精品国产suv| 欧美在线视频在线播放完整版免费观看| 国产日韩欧美影视| 国产精品高清网站| 一区二区成人av| 成人妇女免费播放久久久| 91精品国产乱码久久久久久蜜臀| 亚洲日韩欧美视频| 欧美午夜精品久久久久久浪潮| 久久成年人免费电影| 亚洲人午夜精品免费| 亚洲欧美另类自拍| 亚洲欧美日韩成人| 精品性高朝久久久久久久| 中文字幕精品在线| 91免费版网站入口| 日韩电影大全免费观看2023年上| 亚洲最新av在线网站| 色偷偷偷综合中文字幕;dd| 国产日韩欧美电影在线观看| 国产精品入口尤物| 国产精品jvid在线观看蜜臀| 欧美精品videosex性欧美| 欧美日韩不卡合集视频| 91精品国产免费久久久久久| 国产精品亚洲一区二区三区| yellow中文字幕久久| 亚洲黄一区二区| 国产69精品久久久久9999| 国产精品老牛影院在线观看| 久久深夜福利免费观看| 国产亚洲aⅴaaaaaa毛片| 国模视频一区二区三区| 欧美专区第一页| 精品国产乱码久久久久久天美| 亚洲国内高清视频| 国产精品福利网站| 日韩免费在线播放| 亚洲一区二区福利| 精品国产视频在线| 午夜精品美女自拍福到在线| 91精品国产色综合久久不卡98口| 欧美另类极品videosbest最新版本| 日韩大胆人体377p| 国产性猛交xxxx免费看久久| 色阁综合伊人av| 亚洲福利在线视频| 国产精品777| 国产精品自产拍在线观看中文| 91成人国产在线观看| 亚洲乱码一区二区| 国产精品igao视频| 视频在线观看99| 欧美综合在线第二页| 日韩欧美高清在线视频| 久久久精品电影| 亚洲va欧美va国产综合剧情| 国产欧美久久一区二区| 久久国产天堂福利天堂| 伊人伊成久久人综合网站| 成人黄色免费在线观看| 亚洲天堂av网| 久久精品国产免费观看| 国产一区二区三区四区福利| 亚洲女成人图区| 一区二区三区精品99久久| 乱亲女秽乱长久久久| 亚洲а∨天堂久久精品喷水| 一本色道久久综合狠狠躁篇怎么玩| 久久久精品一区二区三区| 亚洲国语精品自产拍在线观看| 久久99热这里只有精品国产| 国产精品视频一区二区三区四| 在线免费看av不卡| www.日韩视频| 日韩av在线免费播放| 欧美最顶级的aⅴ艳星| 宅男66日本亚洲欧美视频| 亚洲国产私拍精品国模在线观看| 日本精品va在线观看| 日韩高清电影免费观看完整| 国产深夜精品福利| 欧美激情免费在线| 欧美激情xxxx性bbbb| 日本精品视频在线播放| 欧美日韩福利在线观看| 黄色成人在线播放| 欧美资源在线观看| 亚洲欧美中文字幕| 亚洲精品丝袜日韩| 国产在线日韩在线| 日本国产欧美一区二区三区| 亚洲在线观看视频网站| 欧美激情视频网站| 欧洲中文字幕国产精品| 国产精品高清在线观看| 国产精品69久久久久| 亚洲mm色国产网站| 国产在线一区二区三区| 欧美性受xxxx白人性爽| 九九精品视频在线观看| 亚洲国产精品悠悠久久琪琪| 中文字幕av一区二区三区谷原希美| 97香蕉久久超级碰碰高清版| 国产精品视频久久| 国产精品色婷婷视频| 国产精品美腿一区在线看| 亚洲人精选亚洲人成在线| 久久久女女女女999久久| 国产精品aaa|