1.ibatis中使用缓存
首先设置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内的所有cache
2.ibatis 拼接sql语句,动态查询
在ibatis中使用安全的拼接语句,动态查询
ibatis比JDBC的优势之一,安全高效
说明文字在注释中
<select id="selectAllProducts" parameterClass="Product" resultMap="ProductResult">
select id,note from Product
<dynamic prepend="WHERE">
<!-- isNotNull判断参数是否存在,Integer类型 -->
<isNotNull property="id">
<!-- isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于 -->
<isGreaterThan prepend=" and " property="id" compareValue="0">
id = #id#
</isGreaterThan>
</isNotNull>
<!-- isNotEmpty判断字串不为空,isEmpty可以判断字串为空 -->
<isNotEmpty prepend=" and " property="note">
<!-- 模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换 -->
note like '%$note$%'
</isNotEmpty>
</dynamic>
</select>
用Map传参数
<select id="selectAllProducts" parameterClass="java.util.HashMap" resultMap="ProductResult">
select id,note from Product
<dynamic prepend="WHERE">
<!-- isPropertyAvailable判断属性是否有效 -->
<isPropertyAvailable property="id">
<isNotNull property="id">
<!-- isLessThan判断参数是否小于compareValue,isLessEquals是小于等于 -->
<isLessThan prepend=" and " property="id" compareValue="10">
id = #id#
</isLessThan>
</isNotNull>
</isPropertyAvailable>
</dynamic>
</select>
---------------------------------几个常用属性----------------------------------
<isPropertyAvailable> 属性是存在
<isNotPropertyAvailable> 属性不存在
<isNull> 属性值是null
<isEmpty> 判断Collection.size<1或String.length()<1
<isEqual> 等于
<isNotEqual> 不等于
<isGreaterThan> 大于
<isGreaterEqual> 大于等于
<isLessThan> 小于
<isLessEqual> 小于等于
分享到:
相关推荐
标题和描述中提到的"IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2"是针对一个名为IBatisNet的框架的不同组件的版本号。IBatisNet是一个在.NET平台上实现的开源持久层框架,它源于Java...
本篇文章将围绕"IBatis.DataMapper.1.6.2.bin.zip"和"IBatis.DataMapper.1.9"这两个开发包,深入探讨其核心概念、功能特性以及版本间的差异,帮助开发者更好地理解和应用这一框架。 1. **IBatis DataMapper简介** ...
本篇将深入探讨IBatis.Net的核心组件——IBatis.DataAccess.1.9.2和IBatis.DataMapper.1.6.2,以及它们在数据访问中的关键作用。 **一、IBatis.DataAccess** IBatis.DataAccess是IBatis.net框架的一部分,主要负责...
`org.apache.ibatis.annotations.Param`是MyBatis中的一个重要注解,用于处理方法参数映射。 `@Param`注解主要用于SQL查询中的动态参数绑定,尤其是在动态SQL语句中。在MyBatis的映射文件或者Mapper接口中,当我们...
标题 "IBatis.DataMapper.1.6.2" 指的是 IBatis 数据映射器的一个特定版本,即 1.6.2 版本。IBatis 是一个流行且广泛使用的开源持久层框架,它允许开发者将 SQL 查询与.NET 应用程序中的对象模型进行解耦,提供了一...
包含IBatis.net 开发所需的Castle.DynamicProxy.dll,IBatisNet.Common.dll,IBatisNet.DataAccess.dll,IBatisNet.Common.dll以及相关配置文件
3. **ibatis.pdf**:虽然名字简单,但这份文档可能是对iBatis全面的概述,不仅包含基础内容,还可能深入到高级特性和设计模式。例如,它可能涵盖一对一、一对多、多对多的复杂关联映射,以及如何利用、标签处理嵌套...
根据提供的文件信息,本书《Manning iBATIS in Action Jan. 2007 eBook-BBL》主要介绍了iBATIS框架的基本概念、安装配置方法、核心功能及其在实际项目中的应用。下面将针对该书籍中提及的主要知识点进行详细阐述。 ...
1. **Logger**: Ibatis提供了一个日志接口`org.apache.ibatis.logging.Log`,而`ibatis.util.LogFactory`则负责根据用户配置的实现(如Log4j、SLF4J或Java内置的日志系统)创建对应的日志实例,用于记录SQL执行和...
在源码中,`com.ibatis.dao`包下包含了许多关键类,例如`SqlMapClient`是整个框架的入口,负责管理所有的SQL Maps;`SqlMapExecutor`是执行SQL的接口,提供了各种数据库操作的方法;而`SqlMapSession`则封装了事务...
Manning.iBATIS.in.Action.Jan.2007.eBook-BBL.pdf MyBatis 3 User Guide Simplified Chinese.pdf MyBatis-3.0.3-Migrations.pdf MyBatis-3.0.3-User-Guide.pdf MyBatis-3-Migrations.doc MyBatis-3-Migrations.pdf ...
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <value>classpath:SqlMapConfig.xml <bean id="dao" class="org.springframework.orm.ibatis....
ibatis-2.3.3.720.jar
spring-ibatis.jarspring-ibatis.jarspring-ibatis.jar
这里提到的是iBATIS的三个不同版本的jar包:ibatis-2.3.4.726.jar、ibatis-2.3.0.677.jar以及ibatis-2.3.3.720.jar。 首先,让我们深入了解iBATIS的核心概念和功能: 1. **SQL Map配置**:iBATIS的核心是SQL Map...
Ibatis.DataMapper.1.6.2 for .NET 是一个针对.NET框架的版本,它是开源对象关系映射(ORM)工具iBATIS的.NET实现。iBATIS最初由Clinton Begin创建,后来发展成为MyBatis,现在是Java平台上的一个流行ORM框架。然而...
**IBatis.DataAccess 知识点详解** IBatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,与Java代码解耦,提高了开发效率和可维护性。IBatis 数据访问组件(DataAccess)是其核心部分,负责...
【描述】:“iBatis.rar 学习手册学习手册学习手册各种讲解” 这是一份详尽的iBatis学习资源,包含多方面的讲解,旨在帮助读者全面掌握iBatis的使用。通过这份压缩包,你可以了解到iBatis的基本架构、映射文件的...