簡單在ibatis中使用cache
首先設置SqlMapConfig.xml中<settings/>節點的屬性cacheModelsEnabled="true"
而後在具體sqlmap文件中書寫<cacheModel>
<cacheModel id="product-cache" type="LRU">
<flushInterval hours="24"/>
<flushOnExecute statement="insertProduct"/>
<flushOnExecute statement="updateProduct"/>
<flushOnExecute statement="deleteProduct"/>
<property name="size" value="1000" />
</cacheModel>
最後給<select/>節點應用cache
<select id="getAllProducts" cacheModel="product-cache">
select * from PRODUCT
</statement>
複雜點的用法
<cacheModel/>節點
type="LRU"
type屬性能夠指定cache的類型,ibatis支持3種緩存:
MEMORY 沒有統一的對象重用模式或內存不足的應用。
LRU 常用的對象,這是性能最好的選擇。
FIFO 在短期內持續引用,然後極可能再也不使用。
也能夠使用外部cache如:
type="OSCACHE"
readOnly="true"
默認true時緩存效果最好,能夠減小更新。
serialize="false"
默認false,設true能夠提升總體應用的性能。
serialize只能應用於實現了Serializable接口的對象,並且和lazyLoadingEnabled="true"屬性衝突。
flushInterval
自動刷新間隔時間。
flushOnExecute
在特定id的操做後,刷新cache,可選操做。
手動刷新緩存
[sqlmap].flushDataCache("product-cache")
刷新cache當id="product-cache"
[sqlmap].flushDataCache()
刷新sqlmap內的全部cachesql
原文:http://blog.csdn.net/zzcv_/article/details/1956056緩存