`
tmartin
  • 浏览: 102373 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ibatis中iterate的用法[转载]

    博客分类:
  • J2EE
 
阅读更多
PersonDaoImp如下:
  /**
    * 删除性别为man,年龄为 11,12 的Person记录
    */

  public int deletePerson(Map<String, Object> map) {
        
         List<Person> personList =new ArrayList<Person>();

         Person p1=new Person(11);
         person p2=new Person(12);
         personList.add(p1);
         personList.add(p2);

         map.put("personList" , personList );

         map.put("sex" ,'man');
         return getSqlMapClientTemplate().delete(
                                 "person.deletePerson" , map);
     }
person.xml如下:
<!-- 删除相应的person记录 -->
  < delete id =" deletePerson " parameterClass ="map" >

    delete from 表名 where      sex=#sex#        
        < iterate prepend ="and " property =" personList " open ="("
          close =")" conjunction ="or" >
          age=$personList[] .age $
        </ iterate >
      
  </ delete >
输出sql如下:
delete from 表名 where sex='man' and ( age =11 or age=12)

当然你也可以这么写:
person.xml如下:
<!-- 删除相应的person记录 -->
  < delete id =" deletePerson " parameterClass ="map" >

    delete from 表名 where      sex=#sex#     and age in  
        < iterate property =" personList " open ="("
          close =")" conjunction ="," >
          $personList[] .age $
        </ iterate >
      
  </ delete >
输出sql如下:
delete from 表名 where sex='man' and  age in ( 11 , 12)

最后Person代码大致如下:
public class Person{
  public Person(int age){
      this.age=age;
  }
  /**
    * 年龄
    */

  private int age;
  /**
    * 性别
    */

  private String sex;
 
   //get/set方法略
   ...
 }//end of Person

本文出自 “sunfish 翻车鱼 ” 博客,请务必保留此出处http://sunfish.blog.51cto.com/417500/108315

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics