realm官網
realm速度:比 sqlite 和 core data 更好更快的資料庫支援
realm範圍:支援 ios(swift 和 objective-c 語言都支援)和 android
realm我喜歡的原因:相對於fmdb等資料庫,realm讀取資料非常快,可構建大型應用,語言通俗易懂,容易上手,而且跨平台
簡單的資料儲存,可以使用nsuserdefault
稍微複雜的一點的可以使用歸檔,nscoding協議
realm的檢視工具:
如何使用?
2.匯入realm
注意::::::::匯入到general 選項卡的 embedded binaries 專案當中,否則編譯無法通過
3.在工程中建立資料模型
隨後,我們開啟 realm 壓縮包下的 plugin 資料夾,執行其中的 realmplugin.xcodeproj 專案,編譯並執行該專案,重啟 xcode。
這麼做的目的是為了安裝乙個 realm 外掛程式,這個外掛程式能夠幫助我們更好更快地建立 realm 資料模型。
4.realm支援的資料及物件
(注意,支援的物件必須繼承object,通過第三部的模型來建立)
– int,int8,int16,int32 和 int64
– boolean
– float
– string
– nsdate
– nsdata
– 繼承自 object 的類 => 作為一對一關係(used for one-to-one relations)
– list => 作為一對多關係(used for one-to-many relations)
let questionarray =
list
()
5.開始使用
let realm = try? realm()
這樣就建立了乙個全域性的 realm 例項,在我們的例子中我們將一直使用這個例項。
通過以下語句,可以列印出realm的儲存位址
print
(realm?.path)
預設生成 default.realm檔案,使用realm browser開啟
6.建立第一張表
//問題模型
class
questionmodel:object
}
乙個繼承object的物件,稱為一張表
dynamic,是用於標記為可以被修改儲存
primarykey 為主鍵,乙個表只能有乙個主鍵
7.寫入資料
var questionmodellist = [questionmodel]()
for (index, value) in dic!.enumerate()
realm.beginwrite()
realm.add(questionmodellist, update: true)
print(questionmodellist.count)
logtofile("realm.beginwrite2:")
try! realm.commitwrite()
logtofile("commitwrite")
logtofile("over:")
8.條件篩選資料
let question =
realm.objects(questionmodel).filter("stageid=\(choosestageidfsk) and library='\(librarynamefsk)'").sorted("idx")
realm.deleteall() 在刪除資料後,realm檔案的大小不會改變。通過保留空間以便於日後快速儲存資料
9.複雜關係網
//遊戲模型
class
gamename:object
//單詞模型
class
wordmodel:object
//選項模型
class
choosemodel:object
//問題模型
class
questionmodel:object
//關卡模型
class
everypartmodel:object
9.插入大量資料
//下面例子展示如何在後台插入一百萬個資料:
dispatch_async(queue)
// 關閉寫入流程來確保資料在其他執行緒可用
realm.commitwrite()}}
}
將realm的測試環境關掉
更新部分資料:
try! realm.write
更新物件:
try! realm.write
Kotlin引入Realm資料庫
kotlin引入realm資料庫 1.在module的build.gradle中配置外掛程式 realm 資料庫新增kapt引入需要2.在module的build.gradle中引入依賴 compile io.realm realm android 0.87.5 kapt io.realm real...
Realm資料庫拾遺
支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...
Realm資料庫拾遺
支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...