关闭

Android必知必会--GreenDao缓存

标签: android缓存greendao
5610人阅读 评论(5) 收藏 举报
分类:

本篇文章不是介绍GreenDao的配置和基础使用,记录一下GreenDao缓存的问题,帮助遇到同样问题的朋友找到原因和方法,下面是示例:

场景重现

//第一次查询
List chats = daoSession.getChatSessionDao()
    .queryBuilder()
    .orderDesc(ChatSessionDao.Properties.Updatetime)
    .list();

//对数据库中的一条数据进行更新:
ChatSession cs = chats.get(0);
Log.d("body",cs.getBody());
cs.setBody(cs.getBody() + "new");
daoSession.getChatSessionDao().update(cs);

//第二次查询
List chats = daoSession.getChatSessionDao()
    .queryBuilder()
    .orderDesc(ChatSessionDao.Properties.Updatetime)
    .list();

Log.d("body",chats.get(0).getBody());

结果发现两次的body的值是一样的,使用工具查看Sqlite数据库,发现body的值已经变化了,也就是说,我们第二次查询并没有真正执行,返回的是第一次查询的结果。如果要解决缓存问题,这里就要用到DaoSession的一个方法:

DaoSession.clear();

在示例代码中应该写在第二次查询前面

daoSession.clear();
//第二次查询
......

PS:这个清理缓存的方法,会清除所有表的缓存,目前没有发现可以清除单个表或者某个查询的缓存的方法。

GreenDao配置与使用

GreenDao详细的配置和Demo可以参考:

  1. ORM 框架之 greenDAO 使用心得
  2. GreenDao

PS:

你可以关注的我GithubCSDN微博

2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Greendao 查询不到真实数据的解决方法 清除greendao缓存

项目的数据库查询是用的greendao  结果发现查询到的数据竟然是内存中修改后的 数据! 通过查询资料发现了罪魁祸首!greendao的缓存机制! 记录一下清除greendao 缓存的方法 第一种清除daoSession的缓存 daoSession.clear(); 第二种...
  • qq_27192795
  • qq_27192795
  • 2017-11-02 09:38
  • 401

GreenDao学习笔记——初始化和增删改查

android
  • Chen_Victor
  • Chen_Victor
  • 2016-01-24 18:40
  • 4278

ORM缓存框架GreenDao的简单使用

GreenDao的简单应用
  • qq_32143399
  • qq_32143399
  • 2016-11-18 14:46
  • 326

android 多线程下载+GreenDao保存状态+ijkplayer播放缓存后的视频

今天我们要做的是一个多线程下载,然后用GreenDao去保存多线程中的一些信息.下载完成之后,利用IJKplayer播放我们缓存好的视频该我上场表演啦,哈哈哈第一步.导入依赖GreenDao:project的build.gradle中添加classpath 'org.greenrobot:g...
  • c_bulrush
  • c_bulrush
  • 2017-11-23 10:01
  • 184

GreenDao的使用

参考博客地址 http://www.open-open.com/lib/view/open1438065400878.htmlgreendao官网 http://greenrobot.org/greendao/1、GreenDao的原理1、DaoMaster: 持有数据库对象(SQLiteDa...
  • androidxiaogang
  • androidxiaogang
  • 2016-11-08 21:01
  • 536

GreenDao3.2表关联、缓存

  • 2017-03-28 10:36
  • 1.20MB
  • 下载

GreenDao和多线程下载

 public class MainActivity extends AppCompatActivity { private RecyclerView mRv; private MyAdapter myAdapter; private UserDao user...
  • q1970005177
  • q1970005177
  • 2017-11-12 19:19
  • 88

GreenDao详解

GreenDao使用详解
  • Urchin_dong
  • Urchin_dong
  • 2016-03-14 01:40
  • 6325

GreenDao查询数据带缓存

GreenDao查询数据带缓存问题记录:查询某一个dao该到里面存有一个bean如下:@Entity class test{ private String s1; private String s2; @Transient private Bean bean;//特定的一个关系类 ...
  • shayubuhuifei
  • shayubuhuifei
  • 2017-11-30 18:10
  • 53

greenDAO学习分享总结

greenDAO(最新版本V2.0.0的Readme)========greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases. Being highly optimiz...
  • fancylovejava
  • fancylovejava
  • 2015-08-18 19:02
  • 21037
    个人资料
    • 访问:292233次
    • 积分:3455
    • 等级:
    • 排名:第11249名
    • 原创:67篇
    • 转载:8篇
    • 译文:3篇
    • 评论:139条
    博客专栏
    文章分类
    最新评论
    样式调整
    • 1. 优化正文标题区分强度
    • 2. 优化行内代码的显示样式
    • 3. 修复 Safari 浏览器下字体样式错误