sqlite java并发_当Sqlite遇见了RxJava,第一篇简书

写自己的第一篇简书,还是有一点小激动的。

接触RxJava有一段时间了,一开始接触时,真是被Rxjava中得各种操作符弄得一头雾水,但是静下心来,学习一下RxJava,会发现这真的是一个很好的工具,善用RxJava真的能节省很多时间。

对于RxJava,我是用的最多的便是其中的异步任务处理,最近刚好写到了数据库SQLite,便记录一下自己在Sqlite操作中使用RxJava的感想。

数据库的建立:

00d478ea083c

简单地继承写法,创建了一个student表

接下来就是实现这个数据库的方式,我之前的写法就是在线程里面执行数据操作,然后再通过接口回调实现相应地操作。

00d478ea083c

接口层

关键部分代码就是

00d478ea083c

�创建新的线程来执行相应地数据操作,然后通过handler切换到主线程,再进行接口回调,在activity中进行ui操作

总结一下,真个思路还是很明了的,就是需要定义接口,再进行线程切换。如果能将这些操作封装起来的话,那就不用写这么多了。

RxJava版本的DBManager:

00d478ea083c

将回调接口都省掉,返回类型直接定义成Observable

就插入而言:

00d478ea083c

isExistStudent也是一个Observable用来先查询数据库是否存在该学生,然后再接着返回一个insert的操作,利用create来创建一个Observable在io线程中执行,最后在activity里可以直接拿到这个observable,并且在主线程是监听,就可以实现相应地ui操作

activity中得相应操作:

00d478ea083c

这样写的话,就可以让整个操作变成一个链式操作,让思路更清晰明了

再实现一个获取全部列表的:

00d478ea083c

获取全部数据操作

总结一些:

在刚刚的操作中,就是将线程中的耗时操作放入到create中执行,然后异步操作和切换线程都可以连着整个链一直写下去,不用再额外定义其他接口,并且整个流程的起点到终点都可以一目了然。

并且,对于以前的一些采取回调的接口,一旦逻辑复杂起来,就需要写得很复杂,代码可读性不高,采用RxJava后,能够使整个逻辑更清晰明了。并且可以直接利用RxJava来改写之前采取回调的一些方法。

本篇文章是第一篇简书,有不足之处,望多多指出。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值