mybatis缓存

1级缓存

mybatis缓存

mybatis缓存

mybatis缓存

1级缓存失效情况

mybatis缓存

1》2次SqlSession查询 ,因为1级缓存属于SqlSession级缓存,使用2次SqlSession调用触发2次查询sql会使1级缓存失效mybatis缓存

mybatis缓存

2》同一个SqlSession使用不同的查询参数

mybatis缓存

mybatis缓存

3》两次查询中间做修改

mybatis缓存

mybatis缓存

4》手动调用SqlSession的clearCache方法。

一级缓存长这样, 是个map。

mybatis缓存

二、二级缓存

一级缓存会随着SqlSesion关闭而清除,并将结果放置到二级缓存中,二级缓存是SqlSessionFactory级别的缓存,同一个SqlSessionFactory产生的SqlSession都共享一个二级缓存。

mybatis缓存

mybatis缓存

mybatis缓存

 

mybatis缓存

mybatis缓存