使用mybatis批量注入注意点:foreach的collection命名

本文探讨了在MyBatis中使用batchInsert方法时,遇到的'parameterType'为List导致的'Parameter 'resultList' not found'错误。解决方法是调整mapper参数名和XML中collection名,以确保正确映射。作者寻求理解背后原理,期待读者分享见解。

问题描述

我在使用mybatis批量注入时,我的对应mapper中的方法如下所示

 Integer batchInsert(List<AnalysisResult> resultList);

其中的参数名为resultList,对应的xml中的collection命名也为:resultList

<insert id="batchInsert" parameterType="java.util.List">
   insert into test(area_name, city_name, city_code) VALUES
       <foreach collection="resultList" item="result" index="index" separator=",">
            (#{result.area_name}, #{result.city_name}, #{result.city_code})
        </foreach>
</insert>

这时执行批量插入时就会出现如下错误

org.apache.ibatis.binding.BindingException: Parameter 'resultList' not found. Available parameters are [collection, list]

 解决办法之一

将mapper中的参数改成list,对应xml中的collection也改成list,即可解决上述问题

其具体原因还没有搞懂,若有人知道,希望留言指导下。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Flying_6

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

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

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

打赏作者

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

抵扣说明:

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

余额充值