> MyBatis 一级缓存是 SqlSession 级别的本地缓存,默认开启。在同一 SqlSession 生命周期内,它能缓存查询结果,避免重复访问数据库。执行增删改操作或关闭 SqlSession 时,缓存会失效。 我们来详细解析一下 MyBatis 的一级缓存(L1 Cache)的工作原理和生命周期。 核心概念 首先,我们需要明确几个核心概念: 一级缓存是 SqlSession 级别的缓存:它也被称为本地缓存(Local Cache)。 默认开启:一级缓存是 MyBatis 内置的特性,默认就是开启的,而且无法被关闭。 目的:在同一个 的生命周期内,对相同的查询请求,避免重复查询数据库,从而提高性能。 --- 一、工作原理 (Working Principle) MyBatis 的一级缓存本质上是一个 ,存储在 的一个实现类(如 )内部,具体来说是在 (执行器,如 )中。 1. 缓存的 Key 和 Value Value:查询返回的结果对象列表()。 Key: 对象。这是一个非常关键的对象,它唯一地标识了一个查询。MyBatis 会根据以下五个因素来计算生成一个 : 1....