ibatis cachemodel缓存实践

本文详细介绍了ibatis中的cachemodel缓存机制,包括如何配置及使用方法。阐述了缓存类型(MEMORY、LRU、FIFO、OSCACHE)、标识id、只读属性、序列化设置、刷新间隔及执行刷新条件等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cachemodel是ibatis里面自带的缓存机制,正确的应用能很好提升我们系统的性能。

使用方法:在sqlmap的配置文件中加入

<cacheModel type="LRU" id="article_cache" readOnly="true" serialize="false">
        <flushInterval hours="24"/>
        <flushOnExecute statement="articleLists.insertArticle"/>
        <property name="cache_size" value="50"/>       
</cacheModel>

在查询语句中使用缓存

<select id="getArticles" resultClass="articleList" parameterClass="articleList" cacheModel="article_cache">

先对cachemodel中一些用法进行解释一下:

type:是缓存的类型,ibatis中有4种方式,分别为MEMORY、LRU、FIFO、OSCACHE

          MEMORY是内存缓存,和Java内存管理机制类似分为[SOFT、WEAK、STRONG]

          LRU是使用最近最少使用策略

          FIFO是使用先进先出策略

          OSCACHE是通过第三方的缓存插件实现

id:是cachemodel的一个标识

readOnly:指缓存的数据对象是只读还是可读写,默认只读,这里的只读并不是意味着数据对象一旦放入缓存中就无法再对数据进行修改。而是当数据对象发生变化的时候,如数据对象的某个属性发生了变化,则此数据对象就将被从缓存中废除,下次需要重新从数据库读取数据,构造新的数据对象。而readOnly="false"则意味着缓存中的数据对象可更新.

serialize:只有在readOnly为false的情况下才生效,因为在readOnly为true时,所有数据对象相同,只有可读写时,才会出现不同的session拥有不同的数据对象副本。

flushInterval:指定缓存自动刷新的时间,可以为hours,minutes,seconds,milliseconds.

flushOnExecute:指定在发生哪些操作时,更新缓存。

property:不同type的cachemodel有不同的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值