Parameter 'xxx' not found. Available parameters are [collection, list]

本文针对MyBatis中因参数配置不当导致的错误进行了详细分析,并提供了三种解决方案:使用@Param注解、修改SQL映射文件中的collection属性以及处理数组参数。

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

mybatis报错问题:

dao层:
List<HqjTrade> queryHongbao(ArrayList<String> listType);

映射文件下sql:
<select id="queryHongbao" resultType="HqjTrade" >
  select * from hqj_trade where tradetype in
      <foreach collection="listType" open="(" close=")" separator="," 
          item="tradetype">
              #{tradetype}
      </foreach>
  </select>

运行报错:Parameter 'listType' not found. Available parameters are [collection, list]

解决:1.通用方法,在dao层参数上加上@Param("listType"),所以养成加@Param是个好习惯

        2.将sql中Collection="listType"改为 Collection="list"或者"collection"

        3.对应方式处理二,如果参数是数组则这么改: Collection="array"

 

注意:也不是任何参数之前就加上@Param,实体类之前不需要加上注解@Param

   会报org.apache.ibatis.binding.BindingException: Parameter 'xx' not found

转载于:https://www.cnblogs.com/caoxs/p/9229128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值