- 默认情况下,只有一级缓存开启(sqlSession级别的缓存,也称为本地缓存)
- 二级缓存需要手动开启和配置,是基于namespace级别的缓存(也成为全局缓存)
- Mybatis定义了缓存接口Cache,可以通过实现Cache接口自定义二级缓存
1. 一级缓存
与数据库同一次会话间查到的数据会放在本地缓存中
以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查数据库
//测试
...
Employee e1 = mapper.getEmployeeById(1);
Employee e2 = mapper.getEmployeeById(1); //日志sql语句只打印了一次
e1 == e2 //true
..<