本文目錄
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的版本,高版本的不會出現這個問題。