LitePal 1.5.0版本新增功能

由于LitePal 1.5.0版本兼容低版本,并且之前写过LitePal 1.4.1版本的介绍,这里只介绍1.5.0版本的性功能。如果对于LitePal不熟悉可以查看大神 郭霖 的博客,也可以查看我写的 LitePal的学习和使用

在使用Litepal 1.5.0版本之前请将依赖更新到:

compile 'org.litepal.android:core:1.5.0'

好了闲话少说直接进入主题:

LitePal 1.5.0版本新增的两大核心功能:1.异步操作数据库、2.不存在就存储,已存在就更新
1、异步操作数据库:

在1.5.0版本之前LitePal操作数据库的时候都是发生在主线程中的,而1.5.0版本考虑到在开发过程中可能会出现对大量的数据进行操作的情况,提供了异步操作数据库的API,我们只需要调用对应的方法就会自动开启子线程对数据库进行一系列的增删改查

1.1、异步操作数据库的方法

由于异步操作的内部会开启线程,因此这类方法都是无法返回值的,那么异步操作的结果就只能依靠回调来完成。所以LitePal 1.5.0版本在每一个异步方法的后面添加了一个listen()方法

1.1.1、saveAsync() - 异步保存
news.saveAsync().listen(new SaveCallback() {
    @Override
    public void onFinish(boolean success) {
       if (success) {
          Toast.makeText(context, "保存成功", Toast.LENGTH_SHORT).show();
       } else {
          Toast.makeText(context, "保存失败", Toast.LENGTH_SHORT).show();
       }
    }
});
1.1.2、findAsync() - 异步查询
 DataSupport.where("id > ?", "1")
            .select("title", "content")
            .offset(1)
            .limit(2)
            .order("id desc")
            .findAsync(News.class).listen(new FindMultiCallback(){'//此为异步查询方法'
               @Override
               public <T> void onFinish(List<T> t) {
                   Toast.makeText(context, "查询结束", Toast.LENGTH_SHORT).show();
               }
             });
2.不存在就存储,已存在就更新
2.1、不存在就存储,已存在就更新的方法
2.1.1、saveOrUpdate()
                News news = new News();
                news.setId(1);
                news.setCommentCount(2);
                news.setContent("人长得漂亮?太搞笑了。。。");
                news.setTitle("我是新闻,我姓沈");
                news.setPublishDate(new Date());
                news.saveOrUpdate("id = ?","1");
2.2、异步的不存在就存储,已存在就更新的方法
2.2.1、saveOrUpdateAsync()
                News news = new News();
                news.setId(1);
                news.setCommentCount(2);
                news.setContent("人长得漂亮?太搞笑了。。。");
                news.setTitle("我是新闻,我姓沈");
                news.setPublishDate(new Date());
                news.saveOrUpdateAsync("id = ?","1").listen(new SaveCallback() {
                    @Override
                    public void onFinish(boolean success) {
                        if (success) {
                            Toast.makeText(context, "保存成功", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(context, "保存失败", Toast.LENGTH_SHORT).show();
                        }
                    }
                });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值