mybatis快取分為一級快取和二級快取:
一級快取是基於 perpetualcache(mybatis自帶)的 hashmap 本地快取,作用範圍為session,
所以當session commit或close後,快取就會被清空.
1)單獨使用mybatis而不繼承spring,使用原生的mybatis的sqlsessionfactory來構造sqlsession查詢,
是可以使用以及快取的,mybatis的一級快取在spring中是沒有作用的.
二級快取
級快取預設也是基於 perpetualcache,但是可以為其制定儲存源,比如ehcache.
二級快取就是global caching,它超出session範圍之外,可以被所有sqlsession共享,
它的實現機制和mysql的快取一樣,開啟它只需要在mybatis的配置檔案開啟settings裡的
二級快取補充說明
1. 對映語句檔案中的所有select語句將會被快取。
2. 對映語句檔案中的所有insert,update和delete語句會重新整理快取。
3. 快取會使用least recently used(lru,最近最少使用的)演算法來收回。
4. 快取會根據指定的時間間隔來重新整理。
5. 快取會儲存1024個物件
cache標籤常用屬性:
eviction是快取的淘汰演算法,可選值有"lru"、"fifo"、"soft"、"weak",預設值是lru
flashinterval指快取過期時間,單位為毫秒,60000即為60秒,預設值為空,即只要容量足夠,永不過期
size指快取多少個物件,預設值為1024
readonly是否唯讀,如果為true,則所有相同的sql語句返回的是同乙個物件
(有助於提高效能,但併發操作同一條資料時,可能不安全),如果設定為false,則相同的sql,
後面訪問的是cache的clone副本。
上面這個是全域性設定,在每條單獨的sql語句上,還可以有區域性設定,比如:
...usecache="false"表示該select語句不使用快取.
mybatis 3 x 快取Cache的使用
1 namespace 23 cache 4eviction lru 5flushinterval 60000 6size 1024 7readonly true 8 9.10 這裡有幾個要注意的地方 eviction是快取的淘汰演算法,可選值有 lru fifo soft weak 預設值是lru...
mybatis 3 x 快取Cache的使用
1 namespace 23 cache 4eviction lru 5flushinterval 60000 6size 1024 7readonly true 8 9.10 這裡有幾個要注意的地方 eviction是快取的淘汰演算法,可選值有 lru fifo soft weak 預設值是lru...
MyBatis3 X 系列 玩轉多級快取和懶載入
簡介 講解mybatis 級快取介紹和驗證 什麼是快取 程式經常要調 的物件存在記憶體中,便其使 時可以快速調 不必去資料庫或者其他持久化 裝置中查詢,主要就是提 效能 mybatis 級快取 簡介 級快取的作 域是sqlsession,同 個sqlsession中執 相同的sql查詢 相同的 sq...