針對mybatis的快取理解

2021-08-21 03:43:02 字數 1003 閱讀 6497

1、mybatis分別有一級、二級快取,即已經設定好的快取模式,其中,一級快取指每個sqlsession分別有乙個快取,針對相應情況進行資料的快取,也是預設開啟的功能;而針對二級快取需要在mybatis的sql對映檔案中加入語句開啟,並且相應的model類要實現serializable介面,如果只配置單純的標籤,其代表的預設配置如下:

1.所有在對映檔案裡的 select 語句都將被快取。

2.所有在對映檔案裡 insert,update 和 delete 語句會清空快取。

3.快取使用「最近很少使用」演算法來**

4.快取不會被設定的時間所清空。

5.每個快取可以儲存 1024 個列表或物件的引用(不管查詢出來的結果是什麼) 。

6.快取將作為「讀/寫」快取,意味著獲取的物件不是共享的且對呼叫者是安全的。不會有其它的呼叫者或線程潛在修改。

而針對eviction屬性,也就是**演算法,還有:

可用的**策略有:

預設的是 lru。

2、可以採用第三方的cache框架,例如:ehcache、oscache等

mybatis-ehcache-1.0.2.jar

ehcache-core-2.6.5.jar

slf4j-api-1.6.1.jar

當然,採用ehcache 就必須在 classpath 下 加入ehcache 的配置檔案 ehcache.xml:

maxelementsinmemory="10000"

eternal="false"

timetoidleseconds="3600"

timetoliveseconds="10"

overflowtodisk="true"

diskpersistent="true"

diskexpirythreadintervalseconds="120"

maxelementsondisk="10000"

/>

那麼在 sql 對映檔案中要如何配置呢,參考如下:

本文參考:

hibernate快取,mybatis快取詳解

hibernate的快取有一級快取,二級快取,查詢快取。一級快取 很簡單,session級別的快取,通過get,update可以將物件放到一級快取中。二級快取 sessionfactory級別的快取,通過get,list可以將物件放到二級快取中,這裡我必須細講一下,list雖然能夠把物件放入二級快取...

mybatis快取的使用

很久沒寫關於技術方面的文章了,今天分享一下mybatis關於快取方面的技術,個人覺得還是挺好用的,主要是xml配置方面東西,廢話不多說,我們之間上正題。當時想的很簡單,以為在查詢方法的xml配置檔案配置一下usercache true 就可以了,那時候別提有多歡喜了,mybatis的快取這麼簡單,哇...

領會MyBatis的快取

mybatis將資料快取設計成兩級結構,分為一級快取 二級快取 一級快取是session會話級別的快取,位於表示一次資料庫會話的sqlsession物件之中,又被稱之為本地快取。一級快取是mybatis內部實現的乙個特性,使用者不能配置,預設情況下自動支援的快取,使用者沒有定製它的權利 不過這也不是...