報錯信息:Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.executor.ExecutorException: Too many keys are generated. There are only 1 target objects. You either specified a wrong 'keyProperty' or encountered a driver bug li......................
要向一張表批量插入數據,在xml文件中寫的插入語句如下:
<insert id="Weixin_insertQrcd" useGeneratedKeys="true" keyProperty="id"> INSERT INTO ygg_order_qrcode ( orderid, num, qrcd, qrurl, qrsts, creator, create_date, valid ) VALUES <foreach collection="list" item="row" separator=","> (#{orderid},#{row.num},#{row.qrcd},#{row.qrurl},'1',NULL,now(),'1') </foreach> </insert>
useGeneratedKeys = true (使用生成的主鍵) 這個表示插入數據之后返回一個自增的主鍵id給你對應實體類中的主鍵屬性。通過這個設置可以解決在主鍵自增的情況下通過實體的getter方法獲取主鍵(當然還需要keyproperty指明數據庫中返回的主鍵id給實體類中的哪個屬性)。
keyproperty = 主鍵,這樣就可以解決在主鍵自增的情況下獲取主鍵。

解決
方案1:
將useGeneratedKeys="true" 改為 useGeneratedKeys="false",或者將useGeneratedKeys="true"和keyProperty="id"直接刪除
方案2:
配置的Mybatis的版本,高版本的不會出現這個問題。
beautiful!
