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’,需要两个数组怎么办?
mybatis使用foreach遇到的一个坑
最新推荐文章于 2022-11-01 18:05:38 发布