一命雀、數(shù)據(jù)庫對比:
1.特性對比
2.性能對比:
性能對比使用了官方出的對比demo: https://github.com/objectbox/objectbox-performance
二赛惩、各數(shù)據(jù)庫使用了解
1.objectBox數(shù)據(jù)庫
官網(wǎng):https://objectbox.io/
demo:
https://github.com/objectbox/objectbox-java
https://github.com/objectbox/objectbox-examples
實(shí)體創(chuàng)建說明:
https://docs.objectbox.io/entity-annotations
數(shù)據(jù)庫調(diào)試:
https://blog.csdn.net/Vxiaocai/article/details/78839732
https://docs.objectbox.io/data-browser
順便了解下nosql:
https://mp.weixin.qq.com/s/k6IkQmiLNvcG71c_f4iX4Q
2.room數(shù)據(jù)庫
官網(wǎng):https://developer.android.com/training/data-storage/room
DEMO:
https://github.com/android/architecture-components-samples
https://github.com/gongshijier/RoomDemo
3.realm數(shù)據(jù)庫
官網(wǎng):https://realm.io/
DEMO:https://github.com/realm
https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650238381&idx=1&sn=a0fc72220763166ca2e34519ff2055b3&chksm=88639cc2bf1415d40d466e76945338bc88efae957d63e3ea026c801f05883b485d185ffe0b73&scene=0#rd
https://mp.weixin.qq.com/s/dC7L1yy6WpiNP5i4E3Dg5g
三痢艺、ObjectBox基本使用
- 按流程接入 https://github.com/objectbox/objectbox-java
2.參考demo 初始化數(shù)據(jù)庫https://github.com/objectbox/objectbox-examples
2.創(chuàng)建數(shù)據(jù)庫實(shí)體疮茄,使用注解 @Entity 妓湘,并添加主鍵注解 @Id 鞍历。(官方主鍵建議long類型據(jù)說速度較快)
3.build生成MyObjectBox
5.獲取BoxStore開啟數(shù)據(jù)庫操作
四、數(shù)據(jù)庫變更及版本升級說明:
1.objectbox無版本號背蟆。
由default.json文件維護(hù)結(jié)構(gòu)變化信息鉴分,每次有表或字段變更哮幢, 都需要重新make project 自動更新default.json文件,該文件需要提交git維護(hù)志珍;此時同時會自動生成default.json.bak為修改前的文件備份橙垢。
2.新增表、字段伦糯;刪除表柜某、字段。
直接新增舔株、刪除灾搏,只需要make project后default.json會自動維護(hù)變更峭跳。
3.修改已有的表、字段名。
每個表禁熏、字段有一個屬于自己的uid真竖。修改已有的表钥飞、字段名僅make project百框,所修改字段會重新生成uid,這樣會被當(dāng)做新增表寡具、字段來對待秤茅;若想要使用原字段僅修改字段名,需要添加@Uid(9204131405652381067L)讓編譯后還是使用原來字段的uid(9204131405652381067L為原字段uid值)
4.修改字段類型童叠。
不能直接修改字段類型框喳,需要時按照官方提供兩種方法操作:
https://docs.objectbox.io/advanced/data-model-updates
(基于方法1個人理解可以先新增一個字段,更新文件厦坛,再刪除原有的五垮,更新文件。這樣原字段的uid會進(jìn)入retiredPropertyUids杜秸。新字段有新的uid,就不會相互干擾放仗。不過暫未驗(yàn)證)
五、踩坑集錦
1.Entity實(shí)體表結(jié)構(gòu)需要有無參構(gòu)造函數(shù)
https://docs.objectbox.io/entity-annotations
2.objectbox是用default.json文件來管理版本控制的撬碟,有結(jié)構(gòu)修改都需要build這個文件诞挨,且這個文件需要提交svn管理維護(hù)。若同時有兩個人修改造成沖突呢蛤,可以先用其中一個的惶傻,合并完代碼再重新build。
https://docs.objectbox.io/advanced/meta-model-ids-and-uids
3.官方提供了幫助數(shù)據(jù)庫瀏覽的插件data-browser其障,但是這個插件會添加extractNativeLibs="false"有可能會和加固策略沖突 導(dǎo)致加固后異常达罗。參考鏈接說明處理
https://docs.objectbox.io/data-browser
https://docs.objectbox.io/faq