缓存就是将将项目中的少量数据存储到内存和磁盘中,用的时候直接从这里取,就不用再去数据库中找了,算是提高了整体的项目运行效率
mybatis的缓存分为一级和二级缓存,其缓存的配置我们可以自行设置
一级缓存就是sqlsession上的缓存,二级是在sqlsessionFactory(namespace)上的缓存
,默认情况下,mybatis开启一级缓存,没有开启二级缓存,当数据量大的时候,可以借助一些第三方的缓存框架或者使用redis缓存来保存mybatis的二级缓存数据
当进行一级缓存的时候,需要注意,如果是两个sqlsession,那么他们之前互不影响,并不关联,也就是各保存各的
开启二级缓存的步骤:
首先在mybatis 中开启二级缓存
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
cacheEnabled的默认值就是true,所以这步的设置可以省略
另外再xml中配置一个标签即可
随后运行就可以了。这样我们在同一个终端上,即使是不同用户,也可以获取一级缓存缓存的资源
在查询的后面有几点几的数字,那个是缓存命中率,值越高,说明使用缓存中的他的次数就越多
那么这样就有一个问题,如果再缓存中间做一次更删改,那么我们后面再取缓存的值,就会导致数据错误,mybatis’给我们做好了,如果我们进行了一次更删改,那么他就会清空缓存,我们继续查询的时候,他就还从数据库中查询
缓存的执行顺序
cache属性的应用