ibatis的iterate使用

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。

posted on 2010-02-02 15:49 飞熊 阅读(27118) 评论(3)  编辑  收藏 所属分类: Ibatis

评论

# re: ibatis的iterate使用 2011-10-06 01:10 wiky

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>

#value[]# 要改成#ids[]# 才行  回复  更多评论   

# re: ibatis的iterate使用[未登录] 2013-08-22 13:36 呵呵

第三种:in后面的数据确定,使用string传入
<select id="GetEmailList_Test2" parameterClass="TestIn" resultClass="EmailInfo_">
select *
from MailInfo with (nolock)
where ID in
($StrValue$)
</select>   回复  更多评论   

# re: ibatis的iterate使用 2015-08-07 14:17 s'd'f

adfasdfasgsdgasdf  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜