Ibatis輸出結果快取元素

2021-08-31 16:53:39 字數 972 閱讀 4075

摘自:

先看乙個例項:

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