mybatis 缓存机制

分类
MyBatis包含一级缓存(sqlsession级别),二级缓存(mapper级别)
一级缓存(SqlSession 级别)
定义
默认开启,作用域为单个 SqlSession 生命周期。同一 SqlSession 中相同的 SQL 查询会直接从缓存返回结果,避免重复查询数据库。

特点

自动生效:无需配置,默认开启。
作用域小:仅对同一 SqlSession 有效,多个 SqlSession 互不影响。
失效条件:
执行 INSERT/UPDATE/DELETE 操作(无论是否修改缓存数据)。
调用 sqlSession.clearCache() 手动清空。
执行 commit() 或 rollback() 后(事务结束)。
二级缓存(Mapper 级别)
定义
需手动开启,作用域为 Mapper 命名空间(跨 SqlSession 共享)。多个会话访问同一数据时,优先从缓存读取。

posted @ 2025-02-13 17:33  茴香儿  阅读(6)  评论(0)    收藏  举报