Mybatis的一级缓存
一级缓存是sqlSession级别的缓存,用户的一次请求中,第一次通过sql查询数据库得到的数据将会被缓存,第二次调用相同的sql时会直接查询一级缓存,不通过数据库。
一级缓存清除的情况
- 当被查询的数据更新或者删除时,对应的一级缓存也会被清除。
- 一次sqlSession结束,对应的一级缓存也会被清除。
默认状态:一级缓存默认是开启的
Mybatis的二级缓存
二级缓存是mapper级别的缓存,多个sqlSession可以去操作同一个mapper中的sql语句,形成的缓存可以被多个sqlSession共同使用,所以二级缓存是跨sqlSession的
可以用Redis来代替mybatis的二级缓存
默认状态:二级缓存默认是关闭的,需要手动开启