1. 程式人生 > >Mybatis之一級快取和二級快取

Mybatis之一級快取和二級快取

Mybatis的快取

Mybatis的快取,包括一級快取和二級快取 一級快取是預設使用的。 二級快取需要手動開啟。

一級快取

一級快取指的就是sqlsession,在sqlsession中有一個數據區域,是map結構,這個區域就是一級快取區域。一級快取中的key是由sql語句、條件、statement等資訊組成一個唯一值。一級快取中的value,就是查詢出的結果物件。 Map<String,Object> 如果查完後,增刪改操作,清空快取

原理

mybatis的一級快取原理

二級快取

二級快取指的就是同一個namespace下的mapper,二級快取中,也有一個map結構,這個區域就是一級快取區域。一級快取中的key是由sql語句、條件、statement等資訊組成一個唯一值。一級快取中的value,就是查詢出的結果物件。

原理

同一個Mapper會把查詢結果存到一個二級快取中。 mybatis二級快取原理

開啟二級快取

1、在配置檔案中 開啟二級快取的總開關

<setting name="cacheEnabled" value="true"></setting>

2、 在mapper對映檔案中開啟二級快取

<!-- 設定快取 -->
<cache/>

3、實體類實現Serializable

禁用快取

在對映檔案中: 預設值是true useCache=”false”

<select id="findAllPets" resultMap="petsMap" useCache="false">
 select * from pets
</select>

重新整理快取

在對映檔案中: 屬性:flushCache=”true” 重新整理快取,在查詢語句中,預設值是false,在新增刪除修改語句中,預設值是true(清空快取)