Mybatis报错:Parameter 'list' not found. Available parameters are [groupList, param1]

Posted 张倩要好好学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis报错:Parameter 'list' not found. Available parameters are [groupList, param1]相关的知识,希望对你有一定的参考价值。

GroupDao.java 里面定义的方法:

void batchInsertLog(@Param("groupList") List<MktPromotionIntegralLog> groupList);

 

修改前的GroupMapper.xml

<insert id="batchInsertLog" parameterType="java.util.List">
  INSERT INTO table
  (ps_id,goods_id,item_number,goods_name)
  values
  <foreach collection="list" item="log" index="groupList" separator=",">
    (#{log.ps_id},#{log.goods_id},#{log.item_number},#{log.goods_name})
  </foreach>
</insert>

 

执行batchInsertLog方法会报错:

Parameter ‘list‘ not found. Available parameters are [groupList, param1]

 

修改后的GroupMapper.xml

<insert id="batchInsertLog" parameterType="java.util.List">
  INSERT INTO table
  (ps_id,goods_id,item_number,goods_name)
  values
  <foreach collection="groupList" item="log" index="groupList" separator=",">
    (#{log.ps_id},#{log.goods_id},#{log.item_number},#{log.goods_name})
  </foreach>
</insert>

 

修改后报错问题得以解决.

产生这个问题的原因是由于一直认为 foreach 里面的 collection 应该放的是 java.util.List 之类的,但其实应该是我们与Dao里面 @Param("groupList")  绑定的参数名一致,如果没有使用 @Param ,修改前的修改前的GroupMapper.xml也是不会有问题的.















以上是关于Mybatis报错:Parameter 'list' not found. Available parameters are [groupList, param1]的主要内容,如果未能解决你的问题,请参考以下文章

初学Java9:学习Mybatis时报错:Parameter 'name' not found. Available parameters are [1, 0, param1, par

mybatis报错:Error setting null for parameter #1 with JdbcType OTHER

MyBatis批量插入返回主键报错

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

org.apache.ibatis.binding.BindingException: Parameter 'idList' not found解决办法

解决Parameter '__frch_item_0' not found. Available parameters 问题