- 浏览: 248720 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
moxia:
softor 写道这是我格式化的代码:
<div id= ...
addEventListener 和attachEvent用法 -
softor:
这是我格式化的代码:
<div id="div ...
addEventListener 和attachEvent用法 -
softor:
你第一段实例里有连个事件监听,你说的“如果userCaptur ...
addEventListener 和attachEvent用法 -
tvmovie:
([\s\S]*) 非常需要,谢谢博主。
关于正则表达式匹配任意字符(包括换行符)的写法 -
zhongxinhu:
昨晚搞了一晚上,很郁闷,也是这个问题
关于正则表达式匹配任意字符(包括换行符)的写法
一,IBATIS 缓存机制使用
1,sqlMapConfig.xml中配置
- 1.SqlMapConfig.xml中
- < settings
- cacheModelsEnabled = "true" //设置为true
- enhancementEnabled = "true"
- lazyLoadingEnabled = "true"
- .............
- />
1.SqlMapConfig.xml中 <settings cacheModelsEnabled="true" //设置为true enhancementEnabled="true" lazyLoadingEnabled="true" ............. />
注意点,k,必须配置settings这个标签,否则
- cacheModelsEnabled = "false"
cacheModelsEnabled="false"
- cacheModelsEnabled = "true" 是默认的,无须配置也可,建议配置
cacheModelsEnabled="true" 是默认的,无须配置也可,建议配置
2,配置具体的sqlMap.xml
- < cacheModel id = "baby-cache" type = "LRU" readOnly = "false"
- serialize = "true" >
- < flushInterval hours = "24" />
- < flushOnExecute statement = "getBabyByParams" />
- < property value = "600" name = "size" />
- </ cacheModel >
- < select id = "getBabyByParams" resultMap = "baby-Result" cacheModel = "baby-cache" >
- select * from Baby
- < dynamic prepend = "where" >
- < isPropertyAvailable property = "name" prepend = "and" >
- name = #name#
- </ isPropertyAvailable >
- < isPropertyAvailable property = "sex" prepend = "and" >
- sex =
- #sex,jdbcType = VARCHAR , javaType = com .yajun.enumdemo.SexEnum#
- </ isPropertyAvailable >
- < isPropertyAvailable property = "BirthdayBondStart"
- prepend = "and" >
- <![CDATA[
- birthday >= cast(#BirthdayBondStart# as datetime)
- ]]>
- </ isPropertyAvailable >
- < isPropertyAvailable property = "BirthdayBondEnd"
- prepend = "and" >
- <![CDATA[
- birthday <= cast(#BirthdayBondEnd# as datetime)
- ]]>
- </ isPropertyAvailable >
- < isPropertyAvailable property = "hobby" prepend = "and" >
- hobby like '%'||#hobby#||'%'
- </ isPropertyAvailable >
- </ dynamic >
- </ select >
<cacheModel id="baby-cache" type="LRU" readOnly="false" serialize="true"> <flushInterval hours="24" /> <flushOnExecute statement="getBabyByParams" /> <property value="600" name="size" /> </cacheModel> <select id="getBabyByParams" resultMap="baby-Result" cacheModel="baby-cache"> select * from Baby <dynamic prepend="where"> <isPropertyAvailable property="name" prepend="and"> name = #name# </isPropertyAvailable> <isPropertyAvailable property="sex" prepend="and"> sex = #sex,jdbcType=VARCHAR,javaType=com.yajun.enumdemo.SexEnum# </isPropertyAvailable> <isPropertyAvailable property="BirthdayBondStart" prepend="and"> <![CDATA[ birthday >= cast(#BirthdayBondStart# as datetime) ]]> </isPropertyAvailable> <isPropertyAvailable property="BirthdayBondEnd" prepend="and"> <![CDATA[ birthday <= cast(#BirthdayBondEnd# as datetime) ]]> </isPropertyAvailable> <isPropertyAvailable property="hobby" prepend="and"> hobby like '%'||#hobby#||'%' </isPropertyAvailable> </dynamic> </select>
二,具体配置项
id
: cacheModel的id.
type
: cache的类型. ibatis目前提供了LRU,MEMORY,FIFO,OSCACHE这四种.
- FIFO: com.ibatis.sqlmap.engine.cache.fifo.FifoCacheController
- LRU: com.ibatis.sqlmap.engine.cache.fifo.LruCacheController
- MEMORY: com.ibatis.sqlmap.engine.cache.fifo.MemoryCacheController
- OSCACHE: com.ibatis.sqlmap.engine.cache.fifo.OSCacheController
当然,你也可以自己来实现Cache, 你需要做的是让你的Cache类 implements com.ibatis.sqlmap.engine.cache.CacheController.
readOnly
: 是否只读. 默认为true, 只读.
serialize
: 是否从Cache中读取同一个对象,还是对象的副本.
只有在readOnly=false才有效.
因为Cache是只读的,那么为不同session返回的对象肯定是一个.
只有在Cache是可读写的时候,才需要为每个session返回对象的副本.
flushInterval
: Cache刷新间隔. 可以配置hours,minutes,seconds,milliseconds.
注: 不是说,间隔时间到了,在Cache的statement会自己刷新,而是说,在间隔时间过了后,下次的查询
将不会从Cache中直接去值,而会用SQL去查.也就是: 如果,间隔时间过了,还没有Cache对应的statement执行
的话,那么Cache中就会一直是旧的,不用担心Cache数据是旧的,因为下次的查询将会直接从SQL查询,而非Cache,查询的结果也会去更新Cache的值.
flushOnExecute
: 当这些statement被执行了,那么下次的查询将会通过SQL去查,同时用查询结果更新Cache.
注: 和flushInterval的刷新一样,不是主动刷新,而是由下次查询来触发被动刷新.
在一个cacheModel中可以指定多个flushOnExecute.
property
: 这是针对cacheModel的额外的一些属性配置.不同type的cacheModel将会有自己专有的一些property配置.
FIFO: <property name="size" value="100" />
LRU: <property name="cache-size" value="100" />
MEMORY: <property name="reference-type" value="WEAK" />
发表评论
-
[Java]读取文件方法大全
2010-11-03 15:32 923[Java]读取文件方法 ... -
spring如何使用多个xml配置文件 【转】
2010-10-26 16:54 16181, 在web.xml中定义 contextConfigLoc ... -
如何指定tomcat中session过期时间
2010-10-11 02:06 1125如何指定tomcat中session过期时间 1. ... -
获取参数日期的上月月末日期及下月月初日期
2010-09-30 10:32 1975public static String getNewDate ... -
eclipse启动参数配置简介
2010-08-04 07:26 2716eclipse.ini内存设置(转 ... -
java 读取纯真IP数据库QQwry.dat的源代码(转)
2010-02-23 15:07 6019java读取纯真IP数据库QQwry.dat的源代码,要 ... -
java实现URL重写的三种方法
2009-11-03 04:38 1462java实现URL重写的三种方法 ... -
log4j相对路径
2009-10-28 16:42 954log4j相对路径 方法一: 在工程s ... -
iBATIS学习笔记
2009-09-16 10:59 7601 ibatis中resultClass对应的对象必须为POJ ... -
ibatis 组合键问题
2009-09-15 17:33 955用ibatis做组合键查询的时候 ,一直提示column {i ... -
ibatis 缓存配置 相关参数说明和性能比较
2009-09-14 16:11 18821 SqlMapConfig.xml文档中参数配置 [s ... -
生成JDK 自带的工具创建密匙库和信任库的批处理命令
2009-08-12 10:14 1563批处理命令如下: keytool -genke ... -
java 和javaw 的区别
2009-08-04 15:16 11874javaw.exe用法和java.exe 相同 javaw的 ... -
Java命令参数说明大全
2009-08-04 14:47 1337序言: Java在运行已编译完成的类时,是通过java虚拟机 ... -
JDK 和 JRE 目录的文件结构
2009-08-04 14:11 3366我 们下载 Java 的安装程序往电脑 ... -
Java安装后JDK/bin目录下的许多exe文件有什么用途
2009-08-04 14:08 1108javac:Java编译器,将Java ... -
JDK 和JRE的区别
2009-08-04 14:05 1043Jre 是java runti ... -
response.getwriter ().write() 乱码
2009-08-03 17:05 4418使用response.getwriter ().write() ... -
JAVA程序运行时提示can't create cache file
2009-08-03 16:34 3024java 程序运行时,提示can't create cache ... -
eclipse3.3+myeclipse6 的VSS插件显示问题
2009-07-28 10:19 1426以前用eclipse3.0 + myeclipse4 和VSS ...
相关推荐
iBATIS提供了内置的缓存机制,可以轻松地配置和使用缓存,减轻开发者的负担,并且提供了多种缓存策略供选择。 ##### 2.3 iBATIS高速缓存和传统O/RM高速缓存的区别 iBATIS高速缓存相较于传统的对象关系映射(ORM)...
iBATIS的缓存机制不仅限于简单的数据存储,还支持基于查询条件的缓存。通过设置`flushCache="true"`,可以在某些操作(如插入、更新或删除)后强制清空相应的一级或二级缓存,确保缓存中的数据与数据库保持同步。 ...
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为:当第一次查询某个表时,IBatis会将查询结果中的字段名缓存起来;而在后续查询其他表时,如果这些表的字段与之前缓存的字段不一致,就会...
在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL映射文件中应用这些缓存设置...
iBatis 提供了本地缓存机制,用于存储查询结果集,减少不必要的数据库访问。以下是对iBatis缓存配置策略的深入解析: 首先,iBatis 的 Cache 键(key)是由多个因素组成的,包括对象的hashCode、checksum、查询参数...
本示例主要关注iBATIS的缓存功能,这是提升系统性能的重要机制。缓存可以减少对数据库的直接访问,从而降低系统负载,提高响应速度。 首先,iBATIS的缓存分为两种类型:一级缓存和二级缓存。一级缓存是SqlSession...
通过上述介绍,我们可以看到iBATIS缓存机制是其性能优化的关键组成部分,通过合理的配置和选择合适的缓存策略,可以显著提升系统的响应速度和整体性能。在实际开发中,理解并掌握这些概念和配置方法,对于优化iBATIS...
ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网
在iBatis中,缓存被划分为一级缓存和二级缓存。 1. **一级缓存**:也称为SqlSession级别的缓存,是默认开启的。当我们在同一个SqlSession中执行相同的SQL查询时,如果第一次查询的结果已经存在于缓存中,那么第二次...
iBatis 数据缓存机制是提高数据库访问性能的重要手段,它允许将查询结果存储在内存中,以便后续相同查询能够快速获取数据,而无需每次都执行SQL查询。在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻...
9. **缓存机制**:MyBatis提供了一级缓存和二级缓存,可以提高数据查询的效率。 10. **集成测试**:MyBatis-Spring模块简化了在Spring应用中的集成测试,使得测试更加方便。 文件名 "MyBatis-3-User-Guide.pdf" 和...
ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下
7. **缓存机制**:Ibatis内置了本地缓存和二级缓存,可以提高数据读取速度。本地缓存作用于单个SqlSession,而二级缓存则可以在多个SqlSession之间共享,但需要注意并发控制和数据一致性问题。 8. **插件支持**:...
源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...
5. **缓存机制**:Ibatis内置了本地缓存和二级缓存,能够提高数据读取速度,减少数据库压力。 接下来,我们来看看压缩包中的"ibatisDemo"可能包含的内容: - **CRUD示例**:这通常是一系列的Java类和XML配置文件,...
为了提高查询性能,ibatis内置了多种缓存机制,包括`MEMORY`类型缓存、`LRU`(Least Recently Used)型缓存、`FIFO`(First In First Out)型缓存和`OSCache`。其中,`MEMORY`类型缓存使用弱引用(WeakReference)来...