一、MyBatis的緩存機制
1、一級緩存(Local Cache)
MyBatis的一級緩存是默認啟用的,它位于SqlSession對象內(nèi)部。在同一個SqlSession中執(zhí)行的查詢會將查詢結果存儲在一級緩存中。當再次執(zhí)行相同的查詢時,MyBatis會首先檢查一級緩存,如果緩存中存在結果,則直接從緩存中獲取,而不會再次查詢數(shù)據(jù)庫。
2、作用域
一級緩存的作用域是SqlSession級別,即同一個SqlSession中的查詢結果可以被共享。當SqlSession關閉或進行更新操作(插入、更新、刪除)時,一級緩存會被清空。
3、緩存命中策略
MyBatis使用查詢語句的SQL語句、參數(shù)值和映射的結果類型作為緩存的鍵。當執(zhí)行查詢時,MyBatis會根據(jù)這些鍵來檢查緩存是否有匹配的結果。如果有,則直接返回緩存的結果,如果沒有,則執(zhí)行查詢并將結果存入緩存。
4、緩存配置
MyBatis提供了靈活的緩存配置選項。您可以在映射文件或配置文件中配置緩存的開啟和關閉,以及緩存的刷新策略、緩存大小等。可以根據(jù)實際需求進行配置和調(diào)整。