Mysql批量插入ExecutorException: Error getting generated key or setting result to parameter object.

在写批量插入时遇到了一个MyBatisSystemException,ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter 'serialNumber' not found. Available parameters are [list] 这句话的意思是,在获取生成的key或把结果赋值到参数对象时出现了参数异常。

在我的问题场景中,原因是无法把结果赋值到参数对象。下面具体来看问题的来龙去脉。

我要向一张表批量插入数据,在xml文件中写的插入语句如下:

表中主键SERIAL_NUMBER设为自增。

以上写法抛异常。解决方法是修改xml如下:

将useGeneratedKeys设为false

<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="serialNumber">

或去掉useGeneratedKeys和keyProperty

<insert id="batchInsert" parameterType="java.util.List">


不过以上做法可能误导你,因为原来图片中的写法可以是正确的,低版本如上写法会抛异常,高版本不会抛异常。罪魁祸首是配置的Mybatis的版本。

如果你遇到跟我一样的问题,不妨用这几种方法解决异常。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,182评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,400评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,961评论 25 709
  • 我得了产后抑郁症! 如果我说我有产后抑郁症,我身边的朋友估计都笑了,你怎么可能有抑郁症?! 对呀,我怎么可能有抑郁...
    淘遍全球的辣妈阅读 222评论 0 0
  • 想必许多人都知道在商业消费界有这样一个说法:顾客就是上帝。但是也许没有多少人知道说出这句话的人是谁,或者说是很...
    Sophiamee阅读 1,094评论 0 1

友情链接更多精彩内容