mybatis使用foreach实现sql的in查询

本文介绍了一个使用MyBatis框架实现的批量查询方法。通过DAO层接口ITemplateDao中的GetTemplateListByIds方法,可以依据提供的ID列表进行批量数据查询。在Template.xml文件中,利用<foreach>标签实现了对ID列表的有效处理。

dao层 ITemplateDao.java:

List<BrokerTemplate>  GetTemplateListByIds(@Param(value = "ids") List<Long> ids);

 

resource:Template.xml

<select id="GetTemplateListByIds" resultMap="BrokerTemplate">
      SELECT tb1.broker_template_id,
          tb1.broker_id,
          tb1.type,
          tb1.content,
          tb1.is_default,
          tb1.create_time,
          tb1.update_time,
          tb1.is_deleted,
          tb1.delete_time,
          tb1.name,
          tb1.`is_locked`
      FROM broker_template  tb1
      WHERE broker_template_id IN
      <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
         #{id}
      </foreach>
   </select>

<foreach>中 属性如下

 

  collection :是遍历的数据集合,这里是我的list<Long> ids。

  item : 每个子项命名。需要跟foreach内使用时一致,这里是#{id}

  index:索引位置

  open :在遍历执行之前先附加的字符串。 

  close : 在遍历执行完成后附加的字符串。

 separator:遍历每个item子项后附加的字符串(即子项之间自定义的间隔符号)

栗子: open="("   close=")" separator=","  拼出来就是 ( item1,item2, item3 )

 

转载于:https://my.oschina.net/CrazyBoy1024/blog/1619695

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值