当在mybatis用到foreach的时候,会报这个错误Parameter '__frch_item_0' not found. Available parameters are [list]会出现的几种解决方案

例子

  1. <insert id="insertBatchPicAttachment"  parameterType="java.util.List">
  2. insert into pic_attachment
  3. (pic_id,pic_udid,relate_id,relate_code,relate_code_dtl,pic_name,pic_url,pic_remote_url)
  4. values
  5. <foreach collection="list"  item="item" index="index" separator=",">
  6. (#{item.picId},#{item.picUdid},#{item.relateId},#{item.relateCode},#{item.relateCodeDtl},#{item.picName},#{item.picUrl},#{item.picRemoteUrl})
  7. </foreach>
  8. <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="picId">
  9. select LAST_INSERT_ID();
  10. </selectKey>
  11. </insert>

1.查看parameterType的类型是不是Java.util.List类型,如果是的话,看foreach 的collection属性是不是list,

因为 传递一个 List 实例或者数组作为参数对象传给 MyBatis,MyBatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键

2.看一下foreach里面的值有没有传递进来

3.看foreach里面的名称字段是否写错

4.还有就是我用Mybatis的时候,用MySQL的值插入自动增长值,里面的key我在数据库中没有设置自动增长,然后我又用了selectkey,所以也会出现这种情况

--------------------------------------------------------------------

还有一种情况是item的属性不对,我在使用通用Map的时候,发现此问题。

通用Map的好处是减少了对Bean的书写,问题是如果数据库的查询结果为Null,对应属性的key也就不存在。

mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [list]的更多相关文章

  1. mybatis 批量更新 Parameter '__frch_item_0' not found. Available parameters are [list]

    一次在做批量更新数据的时候报错 Parameter '__frch_item_0' not found. Available parameters are [list] 记过反复查找,最后才发现是一个 ...

  2. 解决使用mybatis做批量操作时发生的异常:Parameter '__frch_item_0' not found. Available parameters are [list] 记录

    本文主要描述 使用mybatis进行批量更新.批量插入 过程中遇到的异常及总结: 首先贴出使用批量操作报的异常信息: java.lang.RuntimeException: org.mybatis.s ...

  3. 解决mybatis foreach 错误: Parameter '__frch_item_0' not found

    解决mybatis foreach 错误: Parameter '__frch_item_0' not found 在遍历对象的属性(是ArrayList对象)时报错: org.mybatis.spr ...

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

    1. 问题描述: 出现如下问题,执行报错信息 Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org ...

  5. mybatis批量增加与删除——(十五)

    1.首先应该明白,mybatis增删改返回值是int型的影响行数的值 mapper接口 package cn.xm.mapper; import java.util.List; import cn.x ...

  6. spring 整合Mybatis 错误:Parameter 'items_id' not found. Available parameters are [array]

    运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:Parameter 'items_id' not found. ...

  7. IDEA下运行 mybatis报错 Parameter 'arg0' not found. Available parameters are [autoRecharge, id, param1, param2]

    电脑换系统之后重新安装一了 一下idea 项目运行时出现了以下错误, [autoRecharge, id, param1, param2] 或 [arg0, id, arg1, param2] 参考地 ...

  8. Mybatis传多个参数的问题 及MyBatis报错 Parameter '0' not found. Available parameters are [arg1, arg0, param1 问题

    对于使用Mybatis ,传多个参数,我们可以使用对象封装外,还可以直接传递参数 对象的封装,例如查询对象条件basequery对象 <select id="getProductByP ...

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

    GroupDao.java 里面定义的方法: void batchInsertLog(@Param("groupList") List<MktPromotionIntegra ...

随机推荐

  1. Java反射api详解

    虽然已经用了很多反射相关的api,但是还没有详细研究官方api文档,下面以1.6为基础研究一下api文档(因为只找到了1.6的中文版...),同时补充1.7和1.8对反射相关api的改变.

  2. XE5安卓手机要求

    1 ARMv7 的 CPU v6 的肯定不支持.2 黑屏是因为你的手机 CPU 不支持 NEON 特性.或者是 T2 CPU.3 系统版本  2.3.3 到 2.3.9 或者 4.0 以上.4. SD ...

  3. 异步编程async/await

    什么是异步? 在异步程序中,程序代码不需要按照编写时的顺序严格执行,有时需要一在一个新的线程中运行一部分代码,有时无需创建新的 线程,但是为了更好的利用单个线程的能力,需要改变代码的执行顺序. 进程 ...

  4. 使用InstallUtil安装或卸载服务

    使用InstallUtil安装或卸载服务 一.安装服务: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\MyServ ...

  5. xmlns 与 targetNamespace 的解释

    test.xsd文件: <?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFo ...

  6. controller 状态码

      工具使用lombok表示.如没有使用lombok 请 删除@Getter    @Setter  并给get set方法 调用方法: 类型使用 Status   --->    public ...

  7. fillna()

    将下面注释掉 fillna() 函数:有一个inplace参数,默认为false,不会对原来dataframe中进行替换,为True时候会修改原来的.

  8. python---Numpy模块中数组运算的常用代码示例

    import numpy as np # Numpy数组操作 print('========访问列表元素, 切片,赋值===========') arr = np.array([2., 6., 5., ...

  9. 原生态js展开高度自适应100%

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Windows下使用DOS命令进入MySQL数据库

    先要配置环境变量 MYSQL_HOME : D:\mysql-8.0.11-winx64 Path:%MYSQL_HOME%\bin 1)新建MYSQL_HOME变量,并配置:C:\Program F ...