SQL极简教程 · MySQL · MyBatis · JPA 技术笔记 教程 总结MyBatis+SpringMVC+SpringBootSpringBoot精选

Mysql批量插入ExecutorException: Erro

2017-10-08  本文已影响113人  阿历Ali

在写批量插入时遇到了一个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的版本。

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

上一篇 下一篇

猜你喜欢

热点阅读