本文目录
1、报错信息
运行环境:springboot + mybatis,数据库为mysql,映射xml文件配置信息useGeneratedKeys="true"
最近在检查一个项目,业务是向数据库中插入一条数据(记录), 发现了一个错,报错信息如下:
Caused by: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object
2、错误原因
要向一张表批量插入数据,在xml文件中写的插入语句如下:
useGeneratedKeys是设置数据库主键自动增长,而数据库表本身已经是主键自动增长了,所以这个配置就多余了。
3、解决方法
方案1:
将useGeneratedKeys="true" 改为 useGeneratedKeys="false",或者将useGeneratedKeys="true"和keyProperty="id"直接删除
方案2:
配置的Mybatis的版本,高版本的不会出现这个问题。