ibatis中iterate的用法

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://sunfish.blog.51cto.com/417500/108315
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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值