【MySQL異常】ExecutorException: Error getting generated key or setting result to parameter object


報錯信息: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!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM