MyBatis中的缓存就是说在执行一次Sql查询或更新后,这条语句不会消失而是被缓存起来,再次执行相同语句时,就会直接从缓存中提取不再执行SQL命令。
mybatis的缓存机制有俩级:
1)一级缓存:mybatis已经为我们自动开启,并且我们无法关闭,但可以手动清楚缓存。(SqlSession级别.提交事务,缓存晴空)
一级缓存失效的情况:
1.不同的SqlSession对应不同的缓存
2.同一个SqlSession,查询条件不同
3.同一个SqlSession执行俩次相同之间做了增删改的操作
4.同一个SqlSession,执行俩次相同查询之间手动清空缓存或者手动提交事务(自动提交不会)
2) 二级缓存:需手动开启。(全局级别SqlSessionFactory)
<!--开启二级缓存-->
开启二级缓存需要两个步骤,第一步在mybatis的全局配置文件中配置Setting属性,设置名为cacheEnabled的属性值为true即可
<settings>
<!--
(1):开启二级缓存,这个全局的配置二级缓存
默认是开启的,但是还是需要写上,防止版本的更新
-->
<setting name="cacheEnabled" value="true"/>
</settings>