mybatis 缓存机制
分类
MyBatis包含一级缓存(sqlsession级别),二级缓存(mapper级别)
一级缓存(SqlSession 级别)
定义
默认开启,作用域为单个 SqlSession 生命周期。同一 SqlSession 中相同的 SQL 查询会直接从缓存返回结果,避免重复查询数据库。
特点
自动生效:无需配置,默认开启。
作用域小:仅对同一 SqlSession 有效,多个 SqlSession 互不影响。
失效条件:
执行 INSERT/UPDATE/DELETE 操作(无论是否修改缓存数据)。
调用 sqlSession.clearCache() 手动清空。
执行 commit() 或 rollback() 后(事务结束)。
二级缓存(Mapper 级别)
定义
需手动开启,作用域为 Mapper 命名空间(跨 SqlSession 共享)。多个会话访问同一数据时,优先从缓存读取。

浙公网安备 33010602011771号