Realm移動應用資料庫使用 Android

2021-08-09 10:48:35 字數 2852 閱讀 4855

os儲存方式

特點描述

android

sqlite

容量大,記憶體占用小,併發高,訪問複雜

輕型資料庫系統

android

sharedpreferences

輕量資料,結構簡單,訪問便捷

基於xml檔案儲存的key-value鍵值對資料

android

檔案儲存

圖形、動態演算法等檔案儲存,訪問複雜

檔案io流

android

contentprovider、網路儲存

共享資料、訪問簡單

跨應用、雲儲存

二、主流框架

主流框架

android:sqliteormlite(jdbc);sqlite、active android 、 greendao;realm、sugarorm;

效能mvcc資料庫,api呼叫方法簡化,相較傳統db(鏈結 - 查詢 - 命中 - 記憶體拷貝 - 物件序列化)的複雜過程,不是在sqlite基礎上的orm,資料查詢引擎,realm速度快乙個量級(基於記憶體對映的zero-copy技術)。而且內部採用了類似git的物件版本管理機制,多執行緒併發操作,自動化處理儲存衝突。易於移植,支援json,資料變更通知等高階特性。

視覺化1)android:stetho+chrome:build.gradle中新增repositories 和 compile新增依賴包->initialize初始化->chrome瀏覽器輸入chrome://inspect/#device->inspect->resources

安全性安全性,支援加密,格式化查詢,流式api

三、android應用整合realm

/**

*增*/

//(1)子執行緒事務操作

mrealm.executetransaction(new realm.transaction()

});//(2)子執行緒事務操作

final slidecat cat= realm.createobject(slidecat.class);

cat.setindex(1);

cat.setuv("blackcat.png");

cat.sound("angry.ogg");

mrealm.executetransaction(new realm.transaction()

});//(3)子執行緒事務操作

mrealm.begintransaction();//開啟事務

slidecat cat= realm.createobject(slidecat.class);

cat.setindex(1);

cat.setuv("blackcat.png");

cat.sound("angry.ogg");

mrealm.committransaction();//提交事務

/**

*查*/

//(1)遍歷

realmresultscatlist = mrealm.where(slidecat.class).findall();

//(2)非同步任務

//查詢第一只黑貓

realmresultscatlist = mrealm.where(slidecat.class)

.equalto("1","blackcat")

.findallasync();

//(3)排序

realmresultscatlist = mrealm.where(slidecat.class) .findall();

catlist = result.sort("index"); //根據索引,正序排列

catlist = result.sort("index", sort.descending);//逆序排列

/**

*刪*/

//(1)deletefromrealm()

//先查找到資料

final realmresultscatlist = mrealm.where(slidecat.class).findall();

mrealm.executetransaction(new realm.transaction()

});//(2)deletefromrealm(int index)

//先查找到資料

final realmresultscatlist = mrealm.where(slidecat.class).findall();

mrealm.executetransaction(new realm.transaction()

});//(3)更多

catlist.deletefirstfromrealm(); //刪除user表的第一條資料

catlist.deletelastfromrealm();//刪除user表的最後一條資料

realmresultscats = realm.where(slidecat.class).findall();

cats.deleteallfromrealm();//刪除user表的全部資料

/**

*改*/

//(1)

mrealm.executetransaction(new realm.transaction()

});//(2)先查找到資料

final realmresultscatlist = mrealm.where(slidecat.class).findall();

mrealm.executetransaction(new realm.transaction() );

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資料庫

realm官網 realm速度 比 sqlite 和 core data 更好更快的資料庫支援 realm範圍 支援 ios swift 和 objective c 語言都支援 和 android realm我喜歡的原因 相對於fmdb等資料庫,realm讀取資料非常快,可構建大型應用,語言通俗易懂...

Realm資料庫拾遺

支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...