浅析个人对接realm一个工作日的体验结果(从开始到放弃)

说一说realm

	这是一个跨平台的数据库操作框架,操作相对简单,速度快,等等优点,可以跨平台共享文件,而且因为不是全部注解样式的,上手还是比较快的.

项目介入

	这里我就不做再去介绍了,android方面引入只需要两步
	1,项目的builder文件中添加
		![引入](https://img-blog.csdnimg.cn/20190620202932452.png)
	2,在app下的builder文件中添加
		![引入2](https://img-blog.csdnimg.cn/20190620200506968.png)
	完事了,极其简单,然后在自己的application中声明初始化一下就好了

说一说使用的优点

  1. 快,是真的快,无论异步增删改查,还是同步,小批量的操作可以不入异步操作,直接UI线程
  2. 操作简单,不需要考虑自己的表名称,不需要考虑表的字段的名称,只关心实体数据就完事了

已知缺点(或者感觉不是很合理的地方)

  1. 在操作的时候,从哪个线程里取出来的数据,修改删除等都必须在那个线程里完成,否则就敢给你Exception,然后就开始百度,对于android来说动态的修改数据是是用数据库最常用的,但是在这里非常麻烦,因为你在主线程中,就会卡在那里虽然慢,但是也会卡顿,如果你在子线程中取出来,当你修改的时候还是要操作子线程,否则就报错
  2. 每次查询数据的时候都要添加监听器,监听器获取到查询到数据后改变,就会调用onChange方法,然后还得必须赶紧把这个监听器remove掉,否则的话,当你增删改的时候,这个监听器就有的忙了,只要是改变,就会不停的调用这个方法,你想的可能是查询到数据就修改adapter,结果你发现你只是改了个数据,你的adapter就跟抽了筋一样不停刷新,酸爽
  3. 在修改数据的时候虽然可以不用调用update方法就默认的存储了,但是必须在事务中,我感觉这一块应该再次封装,因为每次修改你先要查询到要修改的数据(查询时候要控制线程,否则下边操作可能会报错,如果你使用executeTransactionAsync或者executeTransaction方法),然后必须再另起一行开启事务,然后修改数据,关闭事务,每次都这样,android中的bean类,多种多样,很难做到写一个方法就搞定所有的,可能需要深入的,具体的,认真的了解然后封装,我没到那程度.
  4. 当你删除一个指定的数据的时候,你依旧需要先查询到这个数据,就是干什么操作都得先查询这个数据,以前的就不能算了,然后再次开启事务,还要保持一样的线程,才能删除成功,这是很纠结的,在adapter中肯定是主线程,做android的操作数据库习惯子线程,所以又得搞线程.
  5. 这是最后一点了,我是用的测试机是pda设备,我是用直接连接USB线然后操作,增删改查都没问题了,试试关了应用再开吧,数据没了,我的设置应该不是问题,根据他们的指导来的,完全没想到结果是没有数据了,查不到了,只要关闭应用就么有了,然后我认为可能是debug的原因,打包吧,还是没有,具体原因我不知道,可能是我设置有问题,具体哪里的问题我根本没法去查,因为网上用的最多的是ios或者其他语言,android都是相对简单的,而且QQ交流群都没有一个(我搜索realm,realm数据库一个都没找到),有问题根本找不到好的解决方案,这是最头疼的,下边放上我的配置,有大牛可以看一眼.在这里插入图片描述

总结

realm确实是一个好的框架,可能我的走位不正确,老是error,或者我对线程控制太过于依赖三方,导致我并不能完美的驾驭这货,但是我相信,我碰到的问题肯定不止我自己碰到,任何接触realm的android开发人员,只要想用,只要经常用,这些问题多多少少都会浮现出来,一点两点可能不会在意,既然用别人的东西就要习惯,但是多了以后就会觉得难受.所以我放弃了realm

写了这些不是说这不是一个好的框架,只是想告诉要或者准备尝试realm的android程序猿们一些碰到的问题,少走弯路,希望你们以后能够正常的对接,然后分享出来.

我是蛇精病,我喂自己袋盐.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值