版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nadiee/article/details/89245862
总结下objectbox数据库使用中遇到的坑
1.编译时xx类找不到,你必须先保证除了数据库相关代码之外的代码中没有错误,可以直接通过命令行执行看具体编译错误原因,最后rebuild下
2.objectbox-models别忘记提交版本管控,否则升级会崩溃
3.修改表结构记得加@Uid(4279138568760652606L),开发阶段自己决定是否添加,这充其量算个浅浅的坑
4.数据库监听,如果顺序操作表t1和t2,而你在某处监听了t1并做一些逻辑处理比如更新UI,那么不幸地告诉你,你已经掉进了又一个坑,你会发现偶尔没有监听到表t1变化,但是可以监听到t2变化,经过多次测试发现后操作的数据库可以被监听到,所以。。。,当然也可以用通知方式代替这种订阅方式
RxBoxStore.<xx>observable(DBManager.getInstance().getBoxStore()).debounce(200, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Class>() { @Override public void accept(Class aClass) throws Exception { if (aClass != null) { LogUtils.tag("checkLoad").d("RxBoxStore changed aClass : " + aClass.getName()); if (aClass == xx.class) { update(); } } } });
5.如果想更新所有记录的某个字段,没有便捷办法,查出来一个一个修改,如果有其他方法,请指教
生平不愿黑别人,老写坑,心里过意不去,写下优点吧
1.快
2.操作还算简单
3.多用户切换实现起来比较简单
那如果再给我一次机会还会选择objectbox吗,也许不会了,我想踩踩其他库的坑^^