Mysql批量插入ExecutorException: Erro

作者: 阿历Ali | 来源:发表于2017-10-08 09:19 被阅读113次

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

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

相关文章

网友评论

    本文标题:Mysql批量插入ExecutorException: Erro

    本文链接:https://www.haomeiwen.com/subject/bhclextx.html