Mybatis內部模塊之---緩存模塊

1.緩存的幾類是Cache接口(基於Map實現的)

2.真正實現緩存的基礎類

是PerpetualCache.java(這個是基於SqlSession的一級緩存的)java

3.緩存的其餘裝飾器

:BlockIngCache.java,其中的成員變量Cache,就是爲了加強PerpetualCache對象的;sql

4.Mybatis中一級緩存和二級緩存講解:

4.1 一級緩存

      默認是開啓的。要是須要關閉的話。須要配置 <select id="selectUserPosition1" flushCache="true">數據庫

      一級緩存存在於Sqlsession生命週期,是線程獨享的(若Sqlsession關閉了,緩存也就失效了)緩存

      任何的DDL語句,都會是緩存清除,session

      一級緩存查詢出來的對象,是同一個對象app

4.2 二級緩存

       若是一級緩存配置的是失效的話,二級緩存也是會查詢數據庫的;spa

       二級緩存是存在於SqlSessionFactory中的,能夠理解爲是跨越Sqlsession 的,是以namespace爲單位的,不一樣的namespace互不影響;線程

       緩存在settings中是默認開啓的cacheEnable = true,xml

       還須要在mapper.xml裏面配置<cache>節點信息對象

4.3 緩存的查詢順序 二級緩存-->一級緩存 ---> DB

5.CacheKey緩存的key

Mybatis中的緩存,不用string,而是用CacheKey,是由於影響緩存的因素不少:

5.1 命名空間+id

5.2 分頁信息

5.3 sql語句

5.4 方法參數

相關文章
相關標籤/搜索