1.什么是缓存?

缓存是内存中开辟的一个区域, 用于存放一些数据(信息). 来提高数据的读取速度. 提高查询效率.

2.MyBatis对缓存的支持

a)一级缓存

MyBatis基于SqlSession对象做的缓存. 同一个SqlSession对象中, 对同一个id的查询, MyBatis会进行数据的缓存. 一级缓存默认开启.

b)二级缓存

MyBatis基于SqlSessionFactory级别做的缓存. 二级缓存默认是关闭的, 如果要使用, 需要在指定的命名空间通过配置进行开启. 使用<cache />即可.

<!-- 开启二级缓存 -->
<!--
eviction: 回收策略
LRU: 最近最少使用
FIFO: 先进先出
flushInterval: 刷新间隔, 默认不刷新, 单位是毫秒
readOnly: 是否是只读
true: 表示只读
false: 默认值, 表示可读可写, 要求实体类可序列化
size: 记录数, 默认为1024
type: 表示自定义缓存使用的全限定路径, 一般用于第三方缓存方案
-->
<cache
eviction="LRU"
flushInterval="60000"
readOnly="false"
size="1024" />

需要在指定的命名空间通过配置进行开启. 使用即可.

3.延迟加载 按需加载

MyBatis的缓存机制_java