RealmAndroid簡單使用說明
-sqlite數據庫-文件形式存儲-shareprefence
Shareprefence的實質是將數據存儲在xml中我們可以認為是Android基于文件存儲的一種簡單封裝。sp和文件適合以緩存形式存儲,比如數據不需要進行條件查詢以及修改的情況下。如果只需要部分數據時,需要大量代碼來實現這個功能。而數據庫能夠給我們實現這種功能。Realm不同于其他的比如greendao以及ormlite,這2種基于sqlite的orm實現。Realm可以說是和sqlite同級別的手機數據庫。廢話一大堆,ok讓我們來看看Realm的使用吧。首先Realm的文檔:https://realm.io/docs/java/latest/
目前Realm的最新版本是0.88.3在這里需要特別說明的Realm在0.88.x之后的導入方式不同于之前的方式。我們來看看區別在哪里。-androidstudio版本>=1.5.1
在這種情況下我們需要在項目的build.gradle加入以下代碼注意是工程的build,不是具體app的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第二步我們在app的build.grade文件中
- 1
- 1
TheMaven&Antbuildsystemsarenotsupported.Ifyouwishtoseesupportforthesebuildsystemspleaseexpressyourinterestinthebelowissuessowecangaugetheinterest.maven和ant編譯系統暫不支持,如果你希望支持他們請去他們的github留言。(不發表任何評論,單純翻譯官方文檔。)-androidstudio版本<1.5.1
- 1
- 1
熟悉的代碼熟悉的味道。在這個版本的Realm支持了ec下的使用jar地址去官網下載吧。
一大段話終于把Realm給導入到項目里了。終于可以開始我們的第二步了。混淆。。。。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
第一步realm每個activity中使用都需要初始化。這里我們直接在application中初始化他吧。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
具體的activity中Realmrealm=Realm.getDefaultInstance();獲得Realm的實例。
第一步創建我們具體要使用的對象。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
所有的對象都必須繼承自RealmObject。對象可以有以下幾種類型boolean,byte,short,ìnt,long,float,double,String,Date,byte[].以及RealmObject和RealmList
Realm中的注解:
@PrimaryKey
@Required
@Ignore
- @Index
Theannotation@Indexwilladdasearchindextothefield.Thiswillmakeinsertsslowerandthedatafilelargerbutquerieswillbefaster.Soit’srecommendedtoonlyaddindexwhenoptimizingspecificsituationsforreadperformance.Wesupportindexing:String,byte,short,int,long,booleanandDatefields.索引,添加索引后會導致增加變慢并且會導致數據庫文件增大,但是查詢的時候會快。(這個自行考慮了)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
我們就把一只叫叫旺財的狗存入了數據庫這里有個方法realm.copyToRealmOrUpdate(obj);如果存在這個數據就會更新如果不存在就會增加。再也不需要select一遍在判斷是增加或者修改了。然后我們查詢出了所有dog表中age=1的第一只,并將的age修改為2.
查詢
- 1
- 1
查詢出所有的狗。
刪除
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
多表聯查
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 1
- 2
- 3
查詢出所有擁有1歲的狗的人。下面是一些查詢的方法between,greaterThan(),lessThan(),greaterThanOrEqualTo()&lessThanOrEqualTo()equalTo()¬EqualTo()contains(),beginsWith()&endsWith()
分組
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 1
- 2
- 3
排序
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
表達式
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
回調的使用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
異步操作
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18