收集了一下“黑咖啡”的介绍: http://www.blogjava.net/kyleYang/archive/2010/02/02/311688.html
感谢能与大家分享
Iterate:这个属性遍历整个集合,并为List集合中的元素重复素体的内容。
Iterate 的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 类型为 java.util.List 的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)
遍历类型为 java.util.List的元素。
例子:
<iterate prepend=”AND” property=”userNameList”
open=”(” close=”)” conjunction=”OR”>
username=#userNameList[]#
</iterate>
ibatis中如何配置in语句,需要迭代,不能直接用string的写法
<select id="sql_test" parameterclass="myPramBean" resultclass="myResult">
select *from tablewhere name in
<iterate property="ids" conjunction="," close=")" open="(" />
#value[]#
</iterate>
and code=#code#
</select>
myPramBean
{
private String code;
private List ids;
...
}
eg:
<delete id="member.batchDelete" parameterClass="java.util.List">
DELETE FROM member where id IN
<iterate conjunction="," open="(" close=")" >
#value[]#
</iterate>
</delete>
注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将
对象标记为List,以防解析器简单地将List输出成String。
这个例子还行,但是我的是一个map。这个#userNameList[]#
似乎不能那样解决!
如下:
<!-- 分页 conditions是一个list-->
<sql id="queryDaily_clarkByPage">
<isNotEmpty property="conditions">
<iterate property="conditions" open="(" close=")" conjunction="AND">
<![CDATA[
tdate=#conditions[]:INT#
AND client_group=#contitions[]:VARCHAR#
AND client_no=#conditions[]:VARCHAR#
]]>
</iterate>
</isNotEmpty>
</sql>
如果是多个条件?比如#contitions[].tdate#,#contitions[].client_group#?
分享到:
相关推荐
`<iterate>`标签是iBatis中用于循环遍历集合的一种机制,它允许你在SQL语句中动态生成参数列表,这对于批量操作(如批量插入、更新或删除)尤为重要。该标签支持多种属性,包括`property`、`conjunction`、`open`、`...
这些标签用于比较两个值,可以是属性值与静态值或属性值与另一个属性值之间的比较。包括: 1. `<isEqual>`:检查属性值是否等于静态值或另一个属性值。 2. `<isNotEqual>`:检查两者是否不相等。 3. `...
本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...
例如,在插入或更新记录时,可以将列名和列值分别存储在HashMap的键和值中,然后在XML映射文件中遍历这个HashMap,构建动态SQL语句。 `<insert>`和`<update>`标签的`<iterate>`用法示例展示了如何处理这种对称的...
例如,`#accessLogId#`会替换为`MemberAccessLog`对象中的`accessLogId`属性值。这种方式极大地简化了对象到数据库表的映射过程,使得数据的持久化更加直观和高效。 ### 输入参数为HashMap 当输入参数是一个`...
上述示例中,`userNameList`是一个List类型的集合,`<iterate>`标签会遍历该集合中的所有元素,并为每个元素生成如下的SQL片段:`AND (username=#userNameList[0] OR username=#userNameList[1] OR ...)`。...
- **设置属性**:填充Bean的属性值。 - **初始化**:调用初始化方法。 - **销毁**:调用销毁方法。 **8. Bean的作用域** - **singleton**:单例模式,容器中只有一个Bean实例。 - **prototype**:原型模式,每次...