iBATIS CacheModel使用浅析

iBATIS CacheModel的使用是什么情况呢?让我们首先从现状入手,Cache也是经常讨论的一个话题之一,在我们系统开发的过程中,总会存在着这样一类数据,它们更新频率很低,然而使用的频率却非常之高。为了提高系统性能,我们通常将此类数据装入缓存。iBATIS.NET也有自己的缓存系统。

MappedStatement的查询结果集可以根据CacheModel的值来确定它是否被装入缓存以及如何装入缓存。而iBATIS CacheModel也是在配置文件中事先定义好的。具体的定义方式如下:

﹤cacheModel id="employee-cache" implementation="LRU" readOnly="true" serialize="false"﹥  
  ﹤flushInterval hours="24"/﹥  
  ﹤flushOnExecute  statement="insertEmployee"/﹥  
  ﹤flushOnExecute  statement="updateEmployee"/﹥  
  ﹤flushOnExecute  statement="deleteEmployee"/﹥  
  ﹤property name="CacheSize" value="100"/﹥  
﹤/cacheModel﹥

iBATIS CacheModel使用浅析配置好之后,它会创建一个名为"employee-cache"的缓存实例,implementation表示它的实现规则是LRU,即:Leaste Recently Used。iBATIS.NET还有MEMORY,FIFO几种缓存的模式。

readOnly的值说明缓存是只读的还是可读写的,如果readOnly为true,缓存就是只读,false为可读写。

serialize指示缓存是在整个Application中有效还是仅作用于当前的Session。flushInterval的值表示缓存的有效期,上面的配置中则表示改缓存每24小时清空一次,当然有效期还可以用minutes, seconds or milliseconds来表示。

flushOnExecute表示缓存将在执行了什么操作时被清空,上面的配置中表示该缓存在执行insertEmployee or updateEmployee or deleteEmployee时被清空。

CacheSize表示缓存的最大条目,当超过这个值的时候就会按照implementation中定义的规则来清除相应的条目,上面配置中则表示当缓存的条目超过100时,则移出最近最少使用的条目。当我们配置好cacheModel之后就可以在statement中使用了,如下:

﹤statement id="EmployeeList" cacheModel="employee-cache"﹥  
  select * from Employee  
﹤/statement﹥

iBATIS CacheModel的相关情况就介绍到这里,希望对你了解iBATIS CacheModel缓存系统有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索缓存
, ibatis
, statement
, 配置
, ibatis net
, 条目
Ibatis.net
ibatis cachemodel、ibatis cache、ibatisnet cache、cachemodel、mybatis cachemodel,以便于您获取更多的相关知识。

时间: 2024-10-04 15:42:56

iBATIS CacheModel使用浅析的相关文章

iBATIS ResultMap基础浅析

iBATIS ResultMap是我们学习iBATIS中非常重要的一个内容,在我个人看来,能否真正用好iBATIS的一个关键,这就是ResultMap.字面上理解,它就是结果集的映射,就是将返回的记录逐个字段的映射赋值给对象的属性上.其实如果没有特殊需求的话我们完全可以使用ResultClass来代替它,因为如果字段与属性一模一样的话,查询出来数据集会自动匹配到ResultClass指定的类的实例对象,如果字段名不在属性中的话,那这个字段将不会被返回的实例体类对象接受,相当于没有查询出这个字段一

iBATIS分页实例中ObjectDataSource的应用浅析

iBATIS分页实例中ObjectDataSource的应用首先让我们来看看属性方面的特点,ObjectDataSource 控件内置了对分页的支持.我们需要设置 ObjectDataSource 的 EnablePaging属性,然后要设置SelectMethod.SelectCountMethod .StartRowIndexParameterName和MaximumRowsParameterName 属性.当 EnablePaging 属性设置为 true 时,SelectParamete

iBATIS模糊查询的实现实例浅析

iBATIS模糊查询的实现是如何的呢?让我们先看看例子,仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的开发框架的DAO的基类:BaseSqlMapDao内定义了一个内部类来辅助模糊查询.内部类代码如下: protected internal class KeyWordSearch { private IList keywordList = new ArrayList(); public KeyWordSearch(String keyw

iBATIS SQLMap API编程浅析

iBATIS SQLMap API编程如何进行呢?首先我们配置好sqlmap-config.xml文件以后,需要对他进行解析,例如: iBATIS SQLMap的Java代码 public void insert(Person p){ String xml = "com/Jdnis/ibatis/map/sql-map-config.xml"; SqlMapClient sqlMap = null; try { Reader reader = Resources.getResource

iBATIS.NET API基础浅析

有了对iBATIS.NET配置系统的一些认识后,现在就先来简单了解一下,iBATIS.NET是通过什么的方式去调用映射文件的SQL语句的.这对我们接下来深入了解有很大的帮助. 对于简单的iBatis应用场合来说,我想大部分都是集中在与SqlMapper对象打交道.这个类应该说是一个工具类,因为我们一般都是直接调用这个类的方法去执行QUID操作,但是它却不是真正的去做这些事情.因为iBatis内部有很多的类,对象之间的关系是非常复杂的,如果让客户直接去使用它内部方法,无疑增加了使用的复杂性,同样也

iBatis使用OSCache作缓存与java.io.FileNotFoundException异常

这种异常只会发生在 Windows 平台上,可以说是 iBatis 的一个 Bug,大约 iBatis 的开发测试人员都比较热衷于 Unix 族系的平台,而忽略了 Windows 下的兼容性测试. 出现 FileNotFoundException 异常的情形是这样的:Windows7 + iBatis2.3.0.677 + OSCache2.4.1. iBatis 中配置使用 OSCache 缓存,在映射文件 Product.xml 中有如下声明片断: 1.<cacheModel type=&quo

浅析Spring和MyBatis整合及逆向工程_java

spring和mybatis整合 整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.0的jar包 mybatis和spring的整合

ibatis中使用缓存

一 什么是缓存以及为什么要使用缓存 从数据库读出数据后,该数据在某个缓冲区暂时被保存起来.当我们再次需要读取该数据的时候,直接从该缓冲区中读取,而不用再次访问数据库.我们知道数据库连接是很昂贵的资源,减少对数据库的访问是提高性能的手段之一.     二 Ibatis中使用缓存的配置方法 ①SqlMapConfig.xml <sqlMapConfig>  <settings cacheModelsEnabled="true" />  ...... </sql

ibatis中cache配置的问题

问题描述 今天想在项目中实验下ibatis的cache,于是在网上查找资料,按照资料进行了配置,但是报错,项目无法启动<sqlMapnamespace="U5EQUIP_ATTACHMENT_V"><cacheModelid="model-cache"type="MEMORY"><flushIntervalseconds="60"/><flushOnExecutestatement=&