Mybatis之一級快取和二級快取
阿新 • • 發佈:2018-12-12
Mybatis的快取
Mybatis的快取,包括一級快取和二級快取 一級快取是預設使用的。 二級快取需要手動開啟。
一級快取
一級快取指的就是sqlsession,在sqlsession中有一個數據區域,是map結構,這個區域就是一級快取區域。一級快取中的key是由sql語句、條件、statement等資訊組成一個唯一值。一級快取中的value,就是查詢出的結果物件。 Map<String,Object> 如果查完後,增刪改操作,清空快取
原理
二級快取
二級快取指的就是同一個namespace下的mapper,二級快取中,也有一個map結構,這個區域就是一級快取區域。一級快取中的key是由sql語句、條件、statement等資訊組成一個唯一值。一級快取中的value,就是查詢出的結果物件。
原理
同一個Mapper會把查詢結果存到一個二級快取中。
開啟二級快取
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(清空快取)