一级存储是SqlSession上的缓存,默认开启,是一种内存型缓存,不要求实体类对象实现Serializable接口。
缓存中的数据使用键值对形式存储数据
namespace+sqlid+args+offset>>> hash值作为键,查询出的结果作为值
测试 代码
@Test public void testFindDeptByDetpno() { EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); Emp emp = mapper.findByEmpno(7521); System.out.println(emp); // 中间发生了增删改或者是调用了SqlSession调用了commit,会自动清空缓存 sqlSession.commit();// 增删改的时候调用 EmpMapper mapper2 = sqlSession.getMapper(EmpMapper.class); Emp emp2 = mapper2.findByEmpno(7521); System.out.println(emp2); System.out.println(emp==emp2); System.out.println(mapper==mapper2); }