即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> ```