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對象相同,手動清除了一級緩存中的數據
