mybatis 3 x 快取Cache的使用

2021-07-13 12:30:37 字數 1045 閱讀 6394

1

<

namespace

>23

<

cache

4eviction

="lru"

5flushinterval

="60000"

6size

="1024"

7readonly

="true"

8/>

9...

10>

這裡有幾個要注意的地方:

eviction是快取的淘汰演算法,可選值有"lru"、"fifo"、"soft"、"weak",預設值是lru

flashinterval指快取過期時間,單位為毫秒,60000即為60秒,預設值為空,即只要容量足夠,永不過期

size指快取多少個物件,預設值為1024

readonly是否唯讀,如果為true,則所有相同的sql語句返回的是同乙個物件(有助於提高效能,但併發操作同一條資料時,可能不安全),如果設定為false,則相同的sql,後面訪問的是cache的clone副本。

上面這個是全域性設定,在每條單獨的sql語句上,還可以有區域性設定,比如:

<

select

id="getorder"

parametertype

="int"

resulttype

="torder"

usecache

="false"

>

...

select

>

usecache="false"表示該select語句不使用快取(即使xml最開頭的全域性cache啟用)

預設情況下,如果全域性開啟了快取,insert/update/delete成功後,會自動重新整理相關的快取項,但有一點要特別注意:在mybatis與hibernate混用時,由於mybatis與hibernate的快取是無關的,如果用mybatis做select查詢,用hibernate做insert/update/delete,hibernate對資料的修改,並不會重新整理mybatis的快取。

mybatis 3 x 快取介紹

mybatis快取分為一級快取和二級快取 一級快取是基於 perpetualcache mybatis自帶 的 hashmap 本地快取,作用範圍為session,所以當session commit或close後,快取就會被清空.1 單獨使用mybatis而不繼承spring,使用原生的mybati...

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...