MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?

一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问

使一级缓存失效的四种情况:

1) 不同的SqlSession对应不同的一级缓存

MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?_第1张图片

2) 同一个SqlSession但是查询条件不同

虽然查询的都是一个对象,但是查询条件不一样,则缓存失效

MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?_第2张图片

3) 同一个SqlSession两次查询期间执行了任何一次增删改操作

虽然删除的和我们查询的不是一条数据,仿佛删除一条数据对我们没有影响,但是如果我们删除的是要查询的数据,虽然数据库里面没有这条数据,但是缓存里面有这条数据,则还是能查到这条数据,避免这种情况的发生,所以进行增删改后缓存的内容消失。

MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?_第3张图片

4) 同一个SqlSession两次查询期间手动清空了缓存

MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?_第4张图片

你可能感兴趣的:(mybatis,java,sql)