美文网首页
objectbox使用及对比

objectbox使用及对比

作者: winxx | 来源:发表于2021-07-09 13:08 被阅读0次

    一、数据库对比:
    1.特性对比


    image.png

    2.性能对比:

    image.png
    性能对比使用了官方出的对比demo: https://github.com/objectbox/objectbox-performance

    二、各数据库使用了解
    1.objectBox数据库
    官网:https://objectbox.io/

    demo:
    https://github.com/objectbox/objectbox-java
    https://github.com/objectbox/objectbox-examples

    实体创建说明:
    https://docs.objectbox.io/entity-annotations
    数据库调试:
    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数据库
    官网:https://developer.android.com/training/data-storage/room
    DEMO:
    https://github.com/android/architecture-components-samples
    https://github.com/gongshijier/RoomDemo

    3.realm数据库
    官网: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基本使用

    1. 按流程接入 https://github.com/objectbox/objectbox-java
      2.参考demo 初始化数据库https://github.com/objectbox/objectbox-examples
      2.创建数据库实体,使用注解 @Entity ,并添加主键注解 @Id 。(官方主键建议long类型据说速度较快)
      3.build生成MyObjectBox
      5.获取BoxStore开启数据库操作

    四、数据库变更及版本升级说明:
    1.objectbox无版本号。
    由default.json文件维护结构变化信息,每次有表或字段变更, 都需要重新make project 自动更新default.json文件,该文件需要提交git维护;此时同时会自动生成default.json.bak为修改前的文件备份。
    2.新增表、字段;删除表、字段。
    直接新增、删除,只需要make project后default.json会自动维护变更。
    3.修改已有的表、字段名。
    每个表、字段有一个属于自己的uid。修改已有的表、字段名仅make project,所修改字段会重新生成uid,这样会被当做新增表、字段来对待;若想要使用原字段仅修改字段名,需要添加@Uid(9204131405652381067L)让编译后还是使用原来字段的uid(9204131405652381067L为原字段uid值)
    4.修改字段类型。
    不能直接修改字段类型,需要时按照官方提供两种方法操作:
    https://docs.objectbox.io/advanced/data-model-updates
    (基于方法1个人理解可以先新增一个字段,更新文件,再删除原有的,更新文件。这样原字段的uid会进入retiredPropertyUids。新字段有新的uid,就不会相互干扰。不过暂未验证)

    五、踩坑集锦

    1.Entity实体表结构需要有无参构造函数
    https://docs.objectbox.io/entity-annotations

    2.objectbox是用default.json文件来管理版本控制的,有结构修改都需要build这个文件,且这个文件需要提交svn管理维护。若同时有两个人修改造成冲突,可以先用其中一个的,合并完代码再重新build。
    https://docs.objectbox.io/advanced/meta-model-ids-and-uids

    3.官方提供了帮助数据库浏览的插件data-browser,但是这个插件会添加extractNativeLibs="false"有可能会和加固策略冲突 导致加固后异常。参考链接说明处理
    https://docs.objectbox.io/data-browser
    https://docs.objectbox.io/faq

    相关文章

      网友评论

          本文标题:objectbox使用及对比

          本文链接:https://www.haomeiwen.com/subject/sdnknhtx.html