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內部實現的乙個特性,使用者不能配置,預設情況下自動支援的快取,使用者沒有定製它的權利 不過這也不是...