错误org.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘ids’ not found. Available parameters are [array]
Cause: org.apache.ibatis.binding.BindingException: Parameter ‘ids’ not found. Available parameters are [array]
…
错误代码
//mapper.java 接口代码
package cn.xxxxxx.xxx.xxxx.mapper;
import java.util.List;
import cn.dyslzx.two.department.eneity.Dept;
public interface DeptMapper {
//错误在这里
public int delete(Long[] ids);
}
//mapper.xml代码
<delete id="delete" parameterType="Long[]" >
delete from department
<foreach collection="ids" item="id" open="where id in(" close=")" separator=",">
#{id}
</foreach>
</delete>
//测试类代码
@Test
void testDelete() throws Exception {
Long[] ids = {56l,57l};
mapper.delete(ids);
session.commit();
}
Mybatis 中有两种写法 :
一. 使用默认key传值 但是,本人使用并没有成功.
二. 使用注解@Param(" ")
//接口代码中的 Long[] ids 前面没有写 @Param("ids")
public int delete(Long[] ids);
只要把@Param(" 数组名 ")直接加上就可以使用了.
希望各位大神批评指正,感谢