iOS 使用couchbaselite 与couchDB同步

之前项目有一个需求,每天从服务器拿一首诗歌,然后加到本地数据库。加到本地数据库之后还要根据服务器对诗歌的增删改查,本地数据也要相应修改。如果用传统的接口方法增删改查,逻辑会很复杂。

我就想,有没有一种方法,能像git管理代码一样同步本地数据库与服务器数据库,这样就简单多了,这时候chouchbaselite能满足我们的需求。

大家可以从couchbaselite官网下载最新framework:http://www.couchbase.com/nosql-databases/couchbase-mobile

导入framework,推荐用cocopod,不解释。

就拿我们公司项目同步诗歌来说吧,首先,我们想要从couchDB上吧诗歌数据同步下来

首先导入头文件和定义变量

database顾名思义就是本地数据库,CBLReplication就是一个发送请求的类,这里定义了两个,_push和_pull,用过git的人都知道,一个代表提交,一个是拉下来的意思,如果我们只需要同步服务器的数据的话_pull就ok。_push是本地作修改再提交的时候会用到,等下会提到。

创建database和请求


kDatabaseName 就是你数据库名字,有一点要注意原文这样写道

不能用大写字母,原因不明。

CBLReplication的创建

name和password就是couchDB的授权,kServerDbURL是couchDB数据库地址。最后用通知去回调,可以添加进度条。PS,如果不想同步整个库,只想同步其中几条的话,可以用CBLReplication的filter和documentIDs。documentIDs是一个数组,里面放你想同步字段的documentid,couchDB每条数据都有documentid。filter就是内容筛选。

打印进度,SYNC idle为同步完成

取出数据


首先建立一个数据modle,couchbase里面提供了专门的modle类,然后再modle里面定义好接收的属性例如



遍历rowEnum,然后每一条加进我们创建的model。poem就是我们所要的每一条诗歌包含的数据。如果想要取出的时候作筛选,可以用predicate属性去操作。

增删改查

这个很简单,看下api就可以了,对本地database做完操作想要提交上服务器,只需要生成一个push请求,然后[push start]就ok了。这里操作有空再写


最后

couchbaselite 去管理客户端根服务端的数据,原理跟管理代码一样,很简单。特别是一些数据增删改查,都不需要后台写接口,直接对数据库操作。没用过的可以用下,然后一起研究交流。

weibo:http://weibo.com/u/1932188797/home?topnav=1&wvr=6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容