轉(zhuǎn):Android 數(shù)據(jù)庫框架總結(jié),總有一個(gè)適合你!
推薦使用GreenDao或Realm
一:OrmLite
簡述: 優(yōu)點(diǎn): 1.輕量級;2.使用簡單,易上手;3.封裝完善;4.文檔全面。缺點(diǎn):1.基于反射,效率較低(本人還沒有覺得效率低);2.缺少中文翻譯文檔
jar包 地址:http://ormlite.com/releases/
集成方法:把jar包復(fù)制到as的libs文件夾下,并且引用jar包即可
用于學(xué)習(xí)的相關(guān)博客:
我的博客
總結(jié):比較好的一個(gè)數(shù)據(jù)庫開源框架。不過git上很久沒有更新了,貌似人家好像不在git上做項(xiàng)目維護(hù)了,而是在 官網(wǎng) 上做維護(hù)更新。
二:LitePal
簡述:暫無
git 地址:https://github.com/LitePalFramework/LitePal
集成方法:compile ‘org.litepal.android:core:1.5.0’
用于學(xué)習(xí)的相關(guān)博客:
我的博客
郭霖的博客
總結(jié):LitePal 框架是郭大神開源的數(shù)據(jù)庫框架,他的博客也比較詳細(xì)的介紹了其用法。還不錯(cuò)的框架。
三:GreenDao
簡述:其優(yōu)點(diǎn)還包括以下幾點(diǎn):1.存取速度快; 2.支持?jǐn)?shù)據(jù)庫加密; 3.輕量級; 4.激活實(shí)體; 5.支持緩存; 6.代碼自動(dòng)生成
git 地址:https://github.com/greenrobot/greenDAO
集成方法: compile ‘org.greenrobot:greendao:3.2.0’
用于學(xué)習(xí)的相關(guān)博客:
GreenDao3.2.0項(xiàng)目的接入和簡單的使用
GreenDao3.2的使用,愛不釋手
Android ORM 框架:GreenDao 使用詳解(進(jìn)階篇)
GreenDao數(shù)據(jù)加密相關(guān)博客:
greenDAO的使用詳解—(4)greenDAO3.2.2結(jié)合sqlcipher加密數(shù)據(jù)庫
greendao3.0以上使用步驟(三):數(shù)據(jù)庫加密
加密注意事項(xiàng):
多添加一個(gè)依賴的
compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
1
網(wǎng)址:https://www.zetetic.net/sqlcipher/sqlcipher-for-android/
關(guān)于GreenDao3.2的升級處理一個(gè)不錯(cuò)的git地址:GreenDaoUpgradeHelper
總結(jié):效率很高,插入和更新的速度是sqlite的2倍,加載實(shí)體的速度是ormlite的4.5倍,目前git上一直在做更新維護(hù),start數(shù)量為9000多。
四:DBFlow
簡述:其優(yōu)點(diǎn)還包括以下幾點(diǎn):1.存取速度快; 2.支持?jǐn)?shù)據(jù)庫加密; 3.輕量級; 4.激活實(shí)體; 5.支持緩存; 6.代碼自動(dòng)生成
git 地址:https://github.com/Raizlabs/DBFlow
集成方法: 參考git地址中的內(nèi)容
用于學(xué)習(xí)的相關(guān)博客:
DBFlow的初步使用
我所了解的Android數(shù)據(jù)庫框架——DBFlow
總結(jié):也是很不錯(cuò)的數(shù)據(jù)庫框架,kotlin,rx好像都支持,比GreenDao3.2的使用好像跟方便一些(還沒有具體使用)。目前git上一直在做更新維護(hù),截止2018.1.19日前start數(shù)量為3944多。
五:Realm
簡述:
1.易用:Ream 不是在SQLite基礎(chǔ)上的ORM,它有自己的數(shù)據(jù)查詢引擎。并且十分容易使用。
2.快速:由于它是完全重新開始開發(fā)的數(shù)據(jù)庫實(shí)現(xiàn),所以它比任何的ORM速度都快很多,甚至比SLite速度都要快。
3.跨平臺:Realm 支持 iOS & OS X (Objective?C & Swift) & Android。我們可以在這些平臺上共享Realm數(shù)據(jù)庫文件,并且上層邏輯可以不用任何改動(dòng)的情況下實(shí)現(xiàn)移植。
4.高級:Ream支持加密,格式化查詢,易于移植,支持JSON,流式api,數(shù)據(jù)變更通知等高級特性
5.可視化
git 地址:https://github.com/realm/realm-java
官網(wǎng)地址:https://realm.io/docs/java/latest/#getting-started
集成方法:官網(wǎng)中或相關(guān)博客中已做詳細(xì)說明
用于學(xué)習(xí)的相關(guān)博客:
【Android】Realm詳解
Realm For Android詳細(xì)教程
郭霖微信推薦 地址
總結(jié):目前git上一直在做更新維護(hù),start數(shù)量也為7000多。數(shù)據(jù)庫Realm,是用來替代sqlite的一種解決方案,它有一套自己的數(shù)據(jù)庫存儲引擎,比sqlite更輕量級,擁有更快的速度,并且具有很多現(xiàn)代數(shù)據(jù)庫的特性,比如支持JSON,流式api,數(shù)據(jù)變更通知,自動(dòng)數(shù)據(jù)同步,簡單身份驗(yàn)證,訪問控制,事件處理,最重要的是跨平臺,目前已有Java,Objective C,Swift,React-Native,Xamarin這五種實(shí)現(xiàn)。和 SQLite 不同,它允許你在持久層直接和數(shù)據(jù)對象工作。在它之上是一個(gè)函數(shù)式風(fēng)格的查詢api,眾多的努力讓它比傳統(tǒng)的SQLite 操作更快 。在as3.0以上版本的集成方法: api ‘io.realm:realm-android-library:2.1.1’。官網(wǎng)上推薦的插件化集成方法,在as3.0以上會報(bào)錯(cuò)。
相關(guān)博客:
個(gè)人感覺這篇博客,對這兩個(gè)框架的優(yōu)缺點(diǎn)分析的很到位。得出的結(jié)論大概是:
(一萬條數(shù)據(jù)測試結(jié)果:添加,刪除速度大大優(yōu)于 Realm。而查詢速度卻大大遜色于 Realm。)
Android數(shù)據(jù)庫框架GreenDao&Realm實(shí)戰(zhàn)分析
SQLite數(shù)據(jù)庫框架ORMLite與GreenDao的簡單比較