即session缓存,做用域为 Session,当 Session flush 或 close 以后,该Session中的全部 Cache 就将清空,默认开启。spring
注意 集成spring(使用mybatis-spring)时:缓存
- 每次查询spring会从新建立SqlSession,因此一级缓存是不生效的。
- 而当开启事务时,spring会使用同一个SqlSession作查询,因此这个状况下一级缓存是生效的
即全局缓存,其做用域为 Mapper(Namespace),默认关闭。session
虽然一级缓存带来了性能的提高,可是有时也会形成数据的不许确,并且大部分状况下一级缓存是默认开启的,下面是两个主动关闭一级缓存的方法:mybatis
<select id="selectById" resultType="ClassA" flushCache="true"> ... </select> ```