iBATIS缓存cacheModel属性浅析
iBATIS缓存cacheModel属性的应用使得在Mapped Statement中缓存常用的数据,那么本文将会给你介绍iBATIS缓存cacheModel属性的信息。
iBATIS缓存模型可以在Mapped Statement中使用,在内存中缓存常用的数据。属性cacheModel 定义查询mapped statement 的缓存。每一个查询mapped statement 可以使用不同或相同的cacheModel。以下给出个例子:
- ﹤cacheModel id="product-cache" imlementation="LRU"﹥
- ﹤flushInterval hours="24"/﹥
- ﹤flushOnExecute statement="insertProduct"/﹥
- ﹤flushOnExecute statement="updateProduct"/﹥
- ﹤flushOnExecute statement="deleteProduct"/﹥
- ﹤property name="size" value="1000" /﹥
- ﹤/cacheModel﹥
- ﹤statement id="getProductList" parameterClass="int" cacheModel="product-cache"﹥
- select * from PRODUCT where PRD_CAT_ID = #value#
- ﹤/statement﹥
上面例子中,“getProductList”的缓存使用 WEAK 引用类型,每 24 小时刷新一次,或当更新的操作发生时刷新。
Cache Model使用插件方式来支持不同的缓存算法。它的实现在 cacheModel 的用 type属性来指定(如上所示)。指定的实现类必须实现 CacheController接口,或是下面 4个别名中的其中之一。Cache Model 实现的其他配置参数通过 cacheModel的 property元素来设置。目前包括以下的 4 个实现:
◆"MEMORY” (com.ibatis.db.sqlmap.cache.memory.MemoryCacheController) 。MEMORY cache 实现使用 reference 类型来管理 cache 的行为。垃圾收集器可以根据 reference类型判断是否要回收 cache 中的数据。MEMORY实现适用于没有统一的对象重用模式的应用,或内存不足的应用。
◆“LRU” (com.ibatis.db.sqlmap.cache.lru.LruCacheController) 。LRU Cache 实现用“近期最少使用”原则来确定如何从 Cache 中清除对象。当 Cache溢出时,最近最少使用的对象将被从 Cache 中清除。使用这种方法,如果一个特定的对象总是被使用,它将保留在 Cache 中,而且被清除的可能性最小。对于在较长的期间内,某些用户经常使用某些特定对象的情况(例如,在 PaginatedList 和常用的查询关键字结果集中翻页) ,LRU Cache 是一个不错的选择。
◆“FIFO” (com.ibatis.db.sqlmap.cache.fifo.FifoCacheController) 。FIFO Cache 实现用“先进先出”原则来确定如何从 Cache 中清除对象。当 Cache 溢出时,最先进入 Cache 的对象将从 Cache 中清除。对于短时间内持续引用特定的查询而后很可能不再使用的情况,FIFO Cache 是很好的选择。
◆“OSCACHE” (com.ibatis.db.sqlmap.cache.oscache.OSCacheController) 。OSCACHE Cache 实现是OSCache2.0缓存引擎的一个 Plugin。它具有高度的可配置性,分布式,高度的灵活性。
iBATIS缓存cacheModel属性的情况就向你介绍到这里,是不是对于iBATIS缓存方面的应用有所了解了呢?
http://developer.51cto.com/art/200907/137450.htm
【编辑推荐】
iBATIS缓存cacheModel属性浅析的更多相关文章
- 转:ibatis的cacheModel
转:ibatis的cacheModel cachemodel是ibatis里面自带的缓存机制,正确的应用能很好提升我们系统的性能. 使用方法:在sqlmap的配置文件中加入 <cacheMode ...
- ibatis缓存初探(1)
一,IBATIS 缓存机制使用 1,sqlMapConfig.xml中配置 1.SqlMapConfig.xml中 <settings cacheModelsEnabled="tr ...
- 【ibatis】cachemodel、属性 及特殊配置
http://www.cnblogs.com/13590/archive/2013/03/01/2938126.html <?xml version="1.0" encodi ...
- 学习笔记TF023:下载、缓存、属性字典、惰性属性、覆盖数据流图、资源
确保目录结构存在.每次创建文件,确保父目录已经存在.确保指定路径全部或部分目录已经存在.创建沿指定路径上不存在目录. 下载函数,如果文件名未指定,从URL解析.下载文件,返回本地文件系统文件名.如果文 ...
- 5 -- Hibernate的基本用法 --4 7 二级缓存相关属性
Hibernate的SessionFactory可持有一个可选的二级缓存,通过使用这种二级缓存可以提高Hibernate的持久化访问的性能. Hibernate的二级缓存属性: ⊙ hibernate ...
- 正则表达式lastIndex属性浅析
有这样一段代码: var newDateStr = " 11 13:48:18"; var reg = new RegExp("[0-9]+","g& ...
- activity theme parent 属性浅析
在AndroidManifest.xml文件中,可以对每一个Activity设置android:themetheme的设置 可以设置为系统自带的格式,也可以自定义格式. A: 系统自带格式 1.and ...
- ibatis缓存配置
一.sqlmapconfig.xml <sqlMapConfig> <settings useStatementNamespaces="true" cacheM ...
- UIImageView 的contentMode属性 浅析
UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中.居右,是否缩放等,有以下几个常量可供设定:UIViewContentModeScaleToFillUIView ...
随机推荐
- 新一批电子商务解决方案和企业管理应用加入 VM Depot 中国站点
新一批电子商务解决方案和企业管理应用加入 VM Depot 中国站点. //电子商务平台助力您建设网店// 大约有 6 个最近更新的电子商务程序包已经登陆 VM Depot. 这不仅囊括了全球知 ...
- java 全角半角转换函数
/** * 半角转全角 * @param input String. * @return 全角字符串. */ public static String ToSBC(String input) { ch ...
- 【转】c++重载、覆盖、隐藏——理不清的区别
原文网址:http://blog.sina.com.cn/s/blog_492d601f0100jqqm.html 再次把林锐博士的<高质量c++编程指南>翻出来看的时候,再一次的觉得这是 ...
- JavaScript几种类工厂实现原理剖析
PS:本文参考了司徒正美的<JavaScript框架设计>,以及许多其它的书籍和网络文章,感谢作者们分享了这么好的学习资源!关于JS的类和继承的原理,见:JavaScript里的类和继承文 ...
- [C# 网络编程系列]专题五:TCP编程
转自:http://www.cnblogs.com/zhili/archive/2012/08/25/2656840.html 前言 前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来 ...
- Team Foundation Server操作说明
目录 一. Visual Studio 2010团队协作管理 1.1团队模型及角色 1.1.1创建角色 1.1.2创建工作组 1.1.3工作组成员及权限 1.2团队成员利用VS2010实现协同办公 1 ...
- 排序算法_MergeSort
算法思想: 分治自顶而下实现归并排序: 分治法的三个步骤 设归并排序的当前区间是R[low..high],分治法的三个步骤是:①分解:将当前区间一分为二,即求分裂点 ...
- JavaScript高级程序设计37.pdf
用DOM范围实现简单选择 selectNode()和selectNodeContents()它们都接收一个DOM节点参数,然后使用该节点中的信息来填充范围,其中selectNode()方法选择整个节点 ...
- 斐波那契fib
输入N和N个数(N<=10,每个数<=10^17),对于每个数,要输出能用几个斐波那契数加加减减得到 样例输入: 35101070 样例输出: 124 直接拷题解: fib[i]表示斐波那 ...
- [转]在 Mac OS X 终端里使用 Solarized 配色方案
相信长期浸泡在终端和代码的小伙伴们都有一套自己喜爱的配色方案.以前一直在用简单.适合阅读的 Terminal.app 配色方案,换到 MacBook Pro with Retina display 后 ...