摘自:
先看乙個例項:
3個屬性:
1、type指定使用「近期最少使用」(lru)實現。
2、屬性readonly如果不寫,預設是true,這時的快取效果無疑最好,因為系統不需要考慮更新操作引起快取與實際資料不一致的問題,唯讀快取的例子是固化到資料庫中的一些配置參數列。但是,通常我們想快取的資料是需要增刪改的,這時務必記得要加上 readonly = "false";
3個子元素:
1、根據flushinterval元素的內容,上面的例子每24小時重新整理一次。乙個cachemodel只能有乙個flushinterval,可以使用hours、minutes、seconds、milliseconds來設定。
3、某些cachemodel的實現可能需要另外的屬性,如上面的cache-size屬性,在lru cache model中,cache-size指定了快取儲存的項數。
select * from user
type的3種實現
memory 沒有統一的物件重用模式的應用,或記憶體不足的應用。
weak是預設,大多數情況下是最好的選擇,能大大提高查用查詢的效能,但對於當前不被使用的查詢結果資料,將被清除以釋放記憶體來分配其他物件。
lru 實現用近期最少使用的原則來確定如何從cache中清除物件。對於較長的時間內,一些使用者經常使用某些特定物件的情況(例如,在paginatedlist和常用的查詢關鍵字結果集中翻頁),lru cache是不錯的選擇。
size必須為整數,代表儲存在cache的中物件的最大數目。因此不要cache太多的物件,以免記憶體不足。
fifo 實現用先進先出的原則來確定如何從cache中清除物件。對於短時間內持續引用特定的查詢而後很可能不再使用的情況,fifo是很好的選擇。
根據個人實踐,記憶體充足時使用lru,否則使用memory(weak)通常能獲得較好的效果。
size必須為整數,代表儲存在cache的中物件的最大數目。因此不要cache太多的物件,以免記憶體不足。
Ibatis快取設定
cachemodel id cache logic columns type memory readonly true serialize false flushinterval hours 24 property name reference type value strong cachemode...
IBatis 的快取機制
快取機制,也是基於 key value 的方式,確定了 key 的來龍去脈能很好的認識快取的生存週期。從配置檔案解析說起 0 1 private errorcontext errorcontext 0 2 private cachemodel cachemodel 0 3 0 4 cachemode...
ibatis 查詢返回結果為map
ibatis裡面result只有3種,resultmap,resultclass,resultsettype,沒有resulttype mybatis的 研究了下手冊,發現返回map的方式如下 select sum si.balance qty balance qty s sum si.reserv...