Parameter 'collection' not found

在使用MyBatis进行数据库操作时,遇到Parameter 'collection'未找到的问题。错误源于dao层参数类型与sql中parameterType不匹配。案例1中,参数类型应从ArrayList改为Map。案例2提供了两种解决方案,一是调整dao层方法,二是修改sql语句中的parameterType。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nested exception is org.apache.ibatis.binding.BindingException: Parameter çollection'not found. Available parameters are [depId, userList, operator, param3, param1, param2]

工具:mybatis+pgsql

案例1

dao层

void insert(String depId, String operator, List<User> userList); 

sql

<insert id = "insert" parameterType = "java.util.ArrayList">
	insert into user (username,sex,depId,create_by)
	     values
	   <foreach collection="collection" separator="," item="val">
	       (#{val.username}, #{val.sex}, #{depId}, #{create_by})
	   </foreach>
</insert>

执行后抛出异常信息:
"nested exception is org.apache.ibatis.binding.BindingException: Parameter 'collection' not found. Available parameters are [depId, userList, operator, param3, param1, param2]"
错误原因:parameterType = “java.util.ArrayList”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值