mybatis使用foreach遇到的一个坑

MyBatis中使用foreach实现IN条件
本文探讨了在MyBatis中如何正确使用foreach标签来实现SQL语句中的IN条件。特别是针对使用数组作为参数的情况,解释了为什么需要指定特定的参数名如array,并给出了具体的解决方案。
mybatis要在sql'中写‘in’条件时,需要用到foreach。
使用数组时,foreach如下写:
<foreach  item="ids" collection="array" index="index"  open="(" separator="," close=")">#{ids}  </foreach>
我认为传入的参数是ids,是个数组。
但在运行的时候始终提示:org.apache.ibatis.binding.BindingException: Parameter 'array' not found. 
找不到‘array’这个参数?

确实有个参数类型是array,但是参数名字是ids啊,甚至于我在Dao接口中定义方法时,使用的都是@Param("ids")这个标记。但mybatis就是提醒我找不到‘array’。
于是乎,干脆将输入参数定义为:@Param("array") String[] ids,这下好了,没有问题了。就是说mybatis需要一个数组,他就认array这个参数名。
还有一点,就是如果方法只有一个参数,那无所谓,有两个以上的参数才需要标记array。

然后,如果sql里面有两个‘in’,需要两个数组怎么办?
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值