由 Mybatis 源码畅谈软件设计(七):从根上理解 Mybatis 一级缓存
*** 部门名称*//*** 部门电话*//*** 部门成员*/DepartmentMapper.xml,两条 SQL:一条根据 ID 查询;一条清除缓存,标记了fulshCache标签,将其设置为 true 后,只要语句被调用,都会将本地缓存和二级缓存清空(默认值为 false)一级缓存基于SqlSession,不同SqlSession间不共享一级缓存一级缓存被保存在的中,本质上是HashMap执行。
本文介绍了MyBatis中一级缓存的实现原理,包括生效范围和失效条件。一级缓存基于SqlSession,不同SqlSession之间不共享,主要用于减少重复查询以提高性能。执行插入、删除和更新操作会导致缓存失效,缓存存放的是对象引用,修改后会影响后续查询结果。