1.什么是缓存?
一般缓存时将服务器保存到本地,当使用到不需要再向数据服务器请求,直接使用。
2.什么是mybatis缓存?
是将数据库与一次会话请求的放在本地缓存中,需要使用到相同的数据,直接从缓存中拿出使用,不需要去查询数据库。
3.mybatis缓存分类
一级缓存:也可以称为本地缓存,SqlSession级别的缓存;是有个map,一级缓存是一直开启的,不需要关闭。
一级缓存失效的情况(如下):
①查询时使用的SqlSession不同
②SqlSession相同,查询的条件不同
③SqlSession相同,两次查询执行了增删改查操作
④手动清除一个一级缓存(缓存清空)
二级缓存:又称为全局缓存,namespace级别的缓存,一个namespace对应一个二级缓存。
工作机制:
①一个会话与数据库的会话,查询了一个数据,这个数据数据就会被放在当前的一级缓存中。
②如果会话关闭,一级缓存中的数据就会保持在二级缓存中,当进行新的查询时,参照的数据就是二级缓存中的内容。
③查询出来的数据会先默认放在一级缓存中
④只有当会话提交或者关闭的情况,一级缓存中的数据会转移到二级缓存中