五、缓存机制
一级缓存(默认开启)
同一个sqlsession会话对象,执行同样的sql操作,在没有对数据库进行增删改的情况下,只对数据库进行一次查询。
二级缓存
不同的sqlsession会话对象,执行同样的sql操作,在没有对数据库进行增删改的情况下,只对数据库进行一次查询。
开启方式
1开启全局配置mybaits-config.xml中
<settings>
<setting name = "cacheEnabled" value = "true"/>
</settings>
2开启当前Mapper的namespace下的二级缓存
<cache></cache>
3实体类需要实现Seriallizable,标注该类,可被序列化,可被存储。
public class xxx implements Serializable{
}
注意
- 只要开启了二级缓存,在同一个Mapper下就有效
- 所有的数据都会先放在一级缓存中;
- 只有当会话提交,或者关闭的时候,才会提交到二级缓冲中!
缓存顺序
- 先查询二级缓存
- 二级缓存没有看一级缓存
- 查询数据库
mybatis基础教程【5小时36讲全套】
重录版-推荐(36讲,无法分享组,点击前往bilibili查看全集)
27一级缓存