Mybatis中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指SqlSession级别的缓存,当在同一个SqlSession中进行相同的SQL语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存1024条SQL。二级缓存是指可以跨SqlSession的缓存,是mapper级别的缓存,对于mapper级别的缓存不同的sqlsession是可以共享的,mapper以命名空间为单位创建缓存数据结构,需要手动开启。
一、开启二级缓存
和一级缓存默认开启不一样,二级缓存需要我们手动开启
1、开启缓存
首先在全局配置文件 mybatis-configuration.xml 文件中加入如下代码:
<!--开启二级缓存 -->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
springboot配置开启二级缓存
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.demo.entity
configuration:
cache-enabled: true
2、在XXXmapper.xml文件中使用缓存
<!-- 开启二级缓存 -->
<cache></cache>
我们可以看到 mapper.xml 文件中就这么一个