mybatis where 条件为list集合处理

10 篇文章 4 订阅 ¥39.90 ¥99.00

欢迎关注博主公众号:【纯洁的明依】文章由陈晓阳原创。
本人微信:chenxiaoyangzxy. 免费提供本人大量学习资料。

在mybatis 编写sql时,常常会遇到条件为list的一个集合,我们在xml里如何进行遍历呢?

代码如下:

 <if test="ids!=null and ids!='' and ids.size()>0">
            id in
            <foreach collection="ids" item="item" index="index"
                     open="(" separator="," close=")">#{item}
            </foreach>
 </if>

collection: 传递过来的name 参数集合

item:遍历的每一个子项。

open:动态拼接子项

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MyBatis 中,可以很方便地通过传入 List 集合作为条件来查询数据。具体实现方式如下: 假设有一个实体类 User,其中有一个属性为 name,现在需要查询 name 在某个 List 中的所有 User。可以编写下面的 SQL 语句: ``` SELECT * FROM User WHERE name IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} </foreach> ``` 这里使用了 MyBatis 的 foreach 标签,将 List 中的元素一个一个地遍历,并将其作为参数传入 SQL 语句中。其中,item 属性指定了遍历过程中的变量名,collection 属性指定了要遍历集合,open 属性指定了集合开始时的字符串,separator 属性指定了元素之间的分隔符,close 属性指定了集合结束时的字符串。 在 Java 代码中,可以这样调用: ``` List<String> nameList = new ArrayList<>(); nameList.add("Tom"); nameList.add("Jerry"); List<User> userList = sqlSession.selectList("userMapper.selectByNameList", nameList); ``` 这里假设 User 对应的 Mapper 接口为 UserMapper,其中有一个名为 selectByNameList 的方法。在 XML 配置文件中编写对应的 SQL 语句,并将参数名设置为 list,如下所示: ``` <select id="selectByNameList" parameterType="java.util.List" resultType="User"> SELECT * FROM User WHERE name IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> ``` 这样,当调用 selectByNameList 方法时,传入的 List 对象就会被解析并应用到 SQL 语句中,最终返回符合条件的 User 对象列表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的明依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值