1、一级缓存和二级缓存
MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 我们查询时,如果缓存中存在数据,那么我们就可以直接从缓存中获取,而不是再去向数据库进行请求。
- 一级缓存默认开启,缓存范围仅为单个SqlSession会话内,不能串缓存
- 二级缓存需要手动开启,范围属于Mapper Namespace
二级缓存的运行规则:
- 二级缓存默认所有查询操作均使用缓存 useCache = "true"
- 写操作commit提交时对该namespace缓存会强制清空
- 配置useCache = "false" 可以不用缓存
- 配置flushCache = "true"代表强制清空缓存
2、测试一级缓存
@Test
public void testLv1Cache(){
SqlSession sqlsession = null;
try{
sqlsession = MybatisUtils.openSession();
Goods g1 = sqlsession.selectOne("g