最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

 更新時(shí)間:2023年12月08日 15:04:05   作者:程序員Forlan  
這篇文章主要介紹了Mybatis批量插入,返回主鍵ID不成功,巨坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、場(chǎng)景說明

批量插入,返回主鍵ID報(bào)錯(cuò)

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found. Available parameters are [entitys, param1]

二、代碼

dao.java

int insertBatch(@Param("entitys") List<ForlanDTO> entities);

dao.xml

    <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
        insert into forlan_batch_insert(name,age)
        values
        <foreach collection="entitys" item="entity" index="index" separator=",">
            (#{entity.name}, #{entity.age})
        </foreach>
    </insert>

mybatis版本號(hào)為:3.4.2

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.2</version>
</dependency>

三、解決方案

1、換mybatis版本

調(diào)整版本號(hào)為3.5.2

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.5.2</version>
</dependency>

換了版本號(hào)后,就正常了,其它版本大家可以測(cè)試下,具體從什么版本后修復(fù)的,這個(gè)暫時(shí)沒查到

2、調(diào)整代碼

dao.java

int insertBatch(@Param("list") List<ForlanDTO> entities);

dao.xml

    <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
        insert into forlan_batch_insert(name,age)
        values
        <foreach collection="list" item="entity" index="index" separator=",">
            (#{entity.name}, #{entity.age})
        </foreach>
    </insert>

關(guān)鍵點(diǎn):foreach里的collection必須是list,不然就會(huì)報(bào)錯(cuò)

四、拓展說明

關(guān)于返回主鍵ID,需要在insert標(biāo)簽中添加,useGeneratedKeys=“true” keyProperty=“id”,useGeneratedKeys和keyProperty必須配合使用,keyProperty的字段就是返回的主鍵ID

mybatis3.3.1及以上的版本,才支持批量插入返回主鍵ID

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot vue完成發(fā)送接口請(qǐng)求顯示響應(yīng)頭信息

    springboot vue完成發(fā)送接口請(qǐng)求顯示響應(yīng)頭信息

    這篇文章主要為大家介紹了springboot+vue完成發(fā)送接口請(qǐng)求顯示響應(yīng)頭信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java實(shí)現(xiàn)讀取及生成Excel文件的方法

    Java實(shí)現(xiàn)讀取及生成Excel文件的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)讀取及生成Excel文件的方法,結(jié)合實(shí)例形式分析了java通過引入第三方j(luò)ar包poi-3.0.1-FINAL-20070705.jar實(shí)現(xiàn)針對(duì)Excel文件的讀取及生成功能,需要的朋友可以參考下
    2017-12-12
  • Spring服務(wù)注解有哪些

    Spring服務(wù)注解有哪些

    這篇文章主要介紹了Spring服務(wù)注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2016-11-11
  • 關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • SpringBoot中使用Knife4j生成接口文檔的示例詳解

    SpringBoot中使用Knife4j生成接口文檔的示例詳解

    Knife4j 是一個(gè)基于 Swagger 的增強(qiáng) UI 實(shí)現(xiàn),主要用于為 Spring Boot 應(yīng)用程序生成 API 接口文檔,本文將詳細(xì)介紹如何在 Spring Boot 中集成 Knife4j,并通過不同注解來生成清晰的接口文檔,需要的可以參考一下
    2025-06-06
  • 使用eclipse打包Maven項(xiàng)目的實(shí)現(xiàn)步驟

    使用eclipse打包Maven項(xiàng)目的實(shí)現(xiàn)步驟

    本文主要介紹了使用eclipse打包Maven項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Spring Boot啟動(dòng)流程示例詳解

    Spring Boot啟動(dòng)流程示例詳解

    Spring Boot是Spring官方推出的一個(gè)快速構(gòu)建獨(dú)立運(yùn)行、生產(chǎn)級(jí)別Spring應(yīng)用的框架,它的核心目標(biāo)是簡化Spring應(yīng)用的搭建與部署,本文給大家介紹Spring Boot啟動(dòng)流程詳解,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • 跟我學(xué)Java Swing之游戲設(shè)計(jì)(2)

    跟我學(xué)Java Swing之游戲設(shè)計(jì)(2)

    跟我學(xué)Java Swing之游戲設(shè)計(jì)(2)...
    2006-12-12
  • 使用spring-cache一行代碼解決緩存擊穿問題

    使用spring-cache一行代碼解決緩存擊穿問題

    本文主要介紹了使用spring-cache一行代碼解決緩存擊穿問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Spring?Boot開發(fā)時(shí)Java對(duì)象和Json對(duì)象之間的轉(zhuǎn)換

    Spring?Boot開發(fā)時(shí)Java對(duì)象和Json對(duì)象之間的轉(zhuǎn)換

    在Spring?Boot開發(fā)中,我們經(jīng)常需要處理Java對(duì)象和Json對(duì)象之間的轉(zhuǎn)換,本文將介紹如何在Spring?Boot項(xiàng)目中實(shí)現(xiàn)Java對(duì)象和Json對(duì)象之間的轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧
    2023-09-09

最新評(píng)論

广西| 峨眉山市| 阜城县| 佛坪县| 普兰店市| 中江县| 崇礼县| 灵宝市| 廉江市| 汉阴县| 东丽区| 保德县| 东丽区| 祥云县| 阳西县| 永福县| 武隆县| 三门县| 长治市| 淳化县| 会泽县| 电白县| 丽江市| 克东县| 梁河县| 呼伦贝尔市| 兰西县| 改则县| 华宁县| 阳山县| 沾益县| 九寨沟县| 河东区| 会昌县| 红原县| 萝北县| 安徽省| 嘉荫县| 凤阳县| 齐齐哈尔市| 木里|