mybatis 梳理17--緩存 (占坑) 一級緩存、二級緩存、三級緩存


1、為什么要用緩存?

如果緩存中有數據,就不用從數據庫獲取,大大提高系統性能。

mybatis提供一級緩存和二級緩存

 

 

2、一級緩存:

(1)一級緩存是sqlsession級別的緩存

在操作數據庫時,需要構造sqlsession對象,在對象中有一個數據結構(HashMap)用於存儲緩存數據

不同的sqlsession之間的緩存區域是互相不影響的。

 

(2)一級緩存工作原理:

 

①第一次發起查詢sql查詢用戶id為1的用戶,先去找緩存中是否有id為1的用戶,如果沒有,再去數據庫查詢用 戶信息。得到用戶信息,將用戶信息存儲到一級緩存中。

②如果sqlsession執行了commit操作(插入,更新,刪除),會清空sqlsession中的一級緩存,避免臟讀

③第二次發起查詢id為1的用戶,緩存中如果找到了,直接從緩存中獲取用戶信息

④mybatis默認支持並開啟一級緩存。

 

 

 

(3)一級緩存演示

             

 

 

 

 

 

 

 

(4)一級緩存失效

1. sqlSession不同

2. 當sqlSession對象相同的時候,查詢的條件不同,原因是第一次查詢時候一級緩存中沒有第二次查詢所需要的數據

3. 當sqlSession對象相同,兩次查詢之間進行了插入的操作

4. 當sqlSession對象相同,手動清除了一級緩存中的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM