1.查看缓存
1.开启日志
2.测试在一个Session中查询两次相同的记录
3.查看日志输出
2.缓存失效的情况
2.1 查询不同的信息
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.queryUserById(1);
System.out.println(user);
System.out.println("===========================");
User user2 =mapper.queryUserById(2);
System.out.println(user2);
sqlSession.close();
}
2.2 增删改操作,可能会改变原来的数据,所以必定会存在刷新缓存
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.queryUserById(1);
System.out.println(user);
mapper.updateUser(new User(2,"bbb","b13"));
System.out.println("===========================");
User user2 =mapper.queryUserById(1);
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.queryUserById(1);
System.out.println(user);
//手动清理缓存
sqlSession.clearCache();
System.out.println("===========================");
User user2 =mapper.queryUserById(1);
System.out.println(user2);
sqlSession.close();
}
2.4 查询不同的Mapper.xml
一级缓存默认是开启的,只在一次sqlSession中有效,也就是拿到连接到关闭连接这个时间段。