目录
1、什么是二级缓存
2、开启二级缓存
2.1、mybatis全局配置
2.2、mapper映射文件中使用二级缓存
3、测试二级缓存
1、什么是二级缓存
一级缓存:是框架默认为我们开启的,我们不需要做任何配置,是SqlSession级别的缓存,在操作数据库的时候需要创建一个SqlSession,其中有一个HashMap,用于存储缓存数据。不同的SqlSession之间,其缓存数据的HashMap是不同的。所以当我们多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。但是不同的SqlSession对象,因为不同的SqlSession都是相互隔离的,所以相同的Mapper、参数和方法,他还是会再次发送到SQL到数据库去执行,返回结果。
二级缓存:是 mapper 级别的缓存,多个sqlSession去操作同一个Mapper的sql,不管Sqlsession 是否相同,只要 mapper 的 namespace相同就能共享数据。也可以称之为 namespace 级别的缓存 。sqlSession 关闭后(close) ,一级缓存的数据会保存到二级缓存中,新的相同的查询语句就会去二级缓存中去查询。二级缓存是Mapper级别的缓存,多个SqlSession去操作同一个Mapper中的SQL语句,则这些SqlSession可以共享二级缓存,即二级缓存是跨SqlSession的。
2、开启二级缓存
2.1、mybatis全局配置
<settings>
<!-- 开启二级缓存 -->
<setting name&#