[Mybatis]12.缓存

1.简介

查询 : 连接数据库 , 耗资源! 一次查询的结果,让他暂存在一个可以直接取到的地方! -->内存 : 缓存

我们再次查询相同的数据时,就直接走缓存,不走数据库了。

[Mybatis]12.缓存

2.一级缓存

[Mybatis]12.缓存
测试步骤:
1.开启日志
2.测试在与一个Session中查询两次相同的记录
3.查看日志输出

[Mybatis]12.缓存

缓存失效的情况:
1.查询不同的东西
2.增删改操作,可能会改变原来的数据,所以一定会刷新缓存!
3.查询不同的Mapper.xml
4.手动清理缓存

一级缓存就是一个map。

sqlSession.clearCache(); //手动清理缓存

3.二级缓存

[Mybatis]12.缓存
步骤:
1.开启全局缓存

    <settings>
<!--        开启全局缓存-->
        <setting name="cacheEnable" value="true"/>
    </settings>

2.在要使用二级缓存的mapper中开启

<!--    在当前Mapper.xml中使用二级缓存-->
    <cache eviction="FIFO"
           flushInterval="60000"
           size="512"
           readOnly="true"/>

3.测试

小结:
1.只要开启了二级缓存,在同一个Mapper下有效
2.所有的数据都会先放在一级缓存中
3.只有当会话提交,或者关闭的时候,才会提交到二级缓存中

4.缓存原理

[Mybatis]12.缓存

5.自定义缓存-ehcache

Ehcache是一种广泛使用的开源Java分布式缓存。

要在程序中使用ehcache,要导包!

<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache -->
<dependency>
    <groupId>org.mybatis.caches</groupId>
    <artifactId>mybatis-ehcache</artifactId>
    <version>1.1.0</version>
</dependency>

上一篇:CollectionUtils


下一篇:【多目标优化求解】基于matlab遗传算法求解多目标配电网重构模型【含Matlab源码 970期】