ibatis iterate标签

原文地址: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的元素。 

例子: 

[html]  view plain copy
 
  1. <iterate prepend=”AND” property=”userNameList”  
  2. open=”(” close=”)” conjunction=”OR”>  
  3. username=#userNameList[]#  
  4. </iterate>  


ibatis中如何配置in语句,需要迭代,不能直接用string的写法

[html]  view plain copy
 
  1. <select id="sql_test" parameterclass="myPramBean" resultclass="myResult">  
  2. select *from tablewhere name in  
  3. <iterate property="ids" conjunction="," close=")" open="(" />  
  4. #ids[]#  
  5. </iterate>  
  6. and code=#code#  
  7. </select>  

 

[java]  view plain copy
 
  1. myPramBean  
  2. {  
  3. private String code;  
  4. private List ids;  
  5. ...  
  6. }   


eg:

[html]  view plain copy
 
  1. <delete id="member.batchDelete" parameterClass="java.util.List">  
  2.       DELETE FROM member where id IN  
  3.       <iterate conjunction="," open="(" close=")" >  
  4.           #value[]#  
  5.       </iterate>  
  6. </delete>  



注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将
对象标记为List,以防解析器简单地将List输出成String。

你可能感兴趣的:(iterate)