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

下面给大家提供一个实例:

xml:这里说明一下这个sql的意思是根据h_code去更新h_clientA的值

<update id="updateHards" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update hard
<set>
<if test="item.h_clientA !=null">
h_clientA = #{item.h_clientA,jdbcType=VARCHAR}
</if>
<if test="item.h_clientB !=null">
h_clientB = #{item.h_clientB,jdbcType=VARCHAR}
</if>
<if test="item.h_clientC !=null">
h_clientC = #{item.h_clientC,jdbcType=VARCHAR}
</if>
</set>
where h_code = #{item.hCode,jdbcType=VARCHAR}
</foreach>
</update>

 dao:

int updateHards(List<Hard> list);

 controller:

List<Hard> hards = new ArrayList<Hard>();
for (int i = 0; i < split.length; i++) {
Hard hard = new Hard();
switch (client.getClient_level()) {
case 2:
hard.setH_clientB(h_client);
break;
case 3:
hard.setH_clientC(h_client);
break;
} hard.sethCode(split[i]);
hards.add(hard);
}
// 3.进行操作,并返回 int updateHards = hardManageService.updateHards(hards);

相关的错误信息:

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

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

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

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

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

如有需要可以加我Q群【308742428】大家一起讨论技术。

后面会不定时为大家更新文章,敬请期待。

喜欢的朋友可以关注下。

  

 

 

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

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

    当在mybatis用到foreach的时候,会报这个错误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. mybatis批量更新报错badsql

    mybatis批量更新时语法写的都对,但是报错,需要在连接上面加上allowMultiQueries=true 示例:jdbc:MySQL://192.168.1.236:3306/test?useU ...

  5. mybatis批量更新update-设置多个字段值 报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

    mybatis批量更新update-设置多个字段值 2016年08月01日 12:49:26 姚一号 阅读数:29539 标签: mysql mybatis批量更新批量更新allowMultiQuer ...

  6. Mybatis批量更新<转>

    Mybatis批量更新 批量操作就不进行赘述了.减少服务器与数据库之间的交互.网上有很多关于批量插入还有批量删除的帖子.但是批量更新却没有详细的解决方案. 实现目标 这里主要讲的是1张table中.根 ...

  7. Mybatis批量更新详解

    转:http://www.cnblogs.com/winkey4986/p/3915151.html Mybatis批量更新 批量操作就不进行赘述了.减少服务器与数据库之间的交互.网上有很多关于批量插 ...

  8. mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样

    Mybatis批量更新数据 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批 ...

  9. mybatis批量更新策略

    我们知道循环中操作db会导致连接数满,严重影响数据库性能.所以在对db进行DQL与DML时,根据业务逻辑尽量批量操作,这里我们介绍下使用mybatis批量更新mysql的两种方式. 方式一: < ...

随机推荐

  1. winxp改AHCI不再蓝屏,不用改注册表,所有PC机通用

    要用win8的pe 在通常的情况下,硬盘在BIOS中默认为原生IDE模式以获得最好的兼容性.对配件要求较高的W7,W8系统中,而通过开启硬盘AHCI模式,可以在一定程度上提升硬盘的性能表现.如果在ID ...

  2. DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用

    2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...

  3. 基于ASP.NET MVC 下的Extjs的Combbox加载速率问题,终于解决啦:)

    在实际的开发项目中,自己遇到一个让自己苦恼很久的问题,一直也未解决,先简单介绍一下这个问题吧.当在表单里有多个combbox的时候(表单中的combbox是经过封装的控件,从后台请求同一个方法获取数据 ...

  4. session的几种模式

    https://www.cnblogs.com/panchunting/archive/2012/06/25/ASPNET_Session_Mode.html token的生成和应用 session和 ...

  5. Invitation Cards POJ - 1511 (双向单源最短路)

    In the age of television, not many people attend theater performances. Antique Comedians of Malidine ...

  6. Linux突然无法使用,是内存不足的问题

    昨晚发现这个问题是网站请求连不到Linux服务器了,后来发现是内存不足导致docker进程被杀掉了,docker的Status为Exit(137),是被内核杀掉的意思, 具体解释看这里,https:/ ...

  7. 【C语言编程练习】5.12 兔子产仔问题

    1. 题目要求 把一对新生的兔子关在屋子里,已知一对两个月大的兔子以后买一个月可以生一对小兔子,而这一对心生的小兔子初生两个月以后才可以生小兔子,假如一年内没有死亡,一年可以繁殖成多少对? 2. 题目 ...

  8. freebsd 时间校准

    修改 /etc/rc.conf ntpdate_enable='YES'ntpd_enable='YES' 如果这里不指定ntpdate_hosts=参数的话,ntpdate会读取/etc/ntp.c ...

  9. 左倾堆C++实现

    #include <iostream> #include <vector> #include <queue> using namespace std; templa ...

  10. js实现八皇后,回溯法

    八皇后问题:将八个皇后摆在一张8*8的国际象棋棋盘上,使每个皇后都无法吃掉别的皇后,一共有多少种摆法? 两个皇后不能同时在同一行,同一列,和斜对角线的位置上,使用回溯法解决. 从第一行选个位置开始放棋 ...