Mybatis-缓存


MyBatis缓存



(1)一级缓存
- 1.查询两次相同的数据
测试:
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
System.out.println("===============================");
User user2=mapper.getUserById(2);
System.out.println(user2);
sqlSession.close();
}
}
日志分析:

- 2.缓存失效的情况
增删改操作可能会改变原理啊的数据,所以增删改之后会刷新数据


- 3.手动清理缓存
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
sqlSession.clearCache();//手动清理缓存
User user2=mapper.getUserById(2);
System.out.println(user2);
sqlSession.close();
}
(2)二级缓存

- 步骤:

- 测试:

- 报错:

- 一些序列化的解释:

(3)缓存原理

浙公网安备 33010602011771号