資料儲存之Realm資料庫

2021-07-24 20:39:25 字數 2900 閱讀 7686

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...