欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis批量插入返回主鍵失敗的坑及解決

 更新時(shí)間:2023年11月03日 10:37:20   作者:軟件宮城獅  
這篇文章主要介紹了mybatis批量插入返回主鍵失敗的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

批量插入返現(xiàn)沒有返回主鍵 

關(guān)鍵點(diǎn)

foreach里的collection必須是list,不然就會(huì)報(bào)錯(cuò)。

返回主鍵的標(biāo)簽

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

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

mybatis批量新增之主鍵回寫

正常批量新增比較簡單 :

寫個(gè)例子

<insert id="batchInsert" parameterType="list" useGeneratedKeys="true" keyProperty="id">
    INSERT INTO `x'x'x` (
    `xx`,
    `xxx`
    )
    VALUES
    <foreach collection="list" item="item" separator=",">
        (
        #{item.xx},
        #{item.xxx}
        )
    </foreach>
</insert>

注: useGeneratedKeys=“true” keyProperty=“id” 這個(gè)是為了回寫id的.

以前基本上沒有需要用到回寫id的地方,但是今天需要用到了.

但是一開始并沒有給我回寫主鍵.

原因就在于我的collection=“這里寫的不是list,而是xxList”.

我的mapper里面寫的是@param(“xxList”); 多個(gè)參數(shù)時(shí)需要使用這個(gè)注解指定.

這樣執(zhí)行是不會(huì)報(bào)錯(cuò)的.但是id就是不會(huì)回寫.

再回頭, 這里應(yīng)該是一個(gè)映射的概念, 以前應(yīng)該是想錯(cuò)了.

待我查閱了一些資料之后,我認(rèn)為,這個(gè)collection,應(yīng)該不是用來指定你在mapper里面?zhèn)魅氲氖裁磪?shù)的.

而是指定這個(gè)集合的類型是什么? 比如: list,set,map這樣的類型.

而當(dāng)我寫成這樣時(shí) : collection=“list” @Param(“list”).

id就給我回寫了.而當(dāng)我傳入的參數(shù)不止一個(gè)時(shí),我依舊可以使用@Param進(jìn)行正常定義.但是是一個(gè)對象,一個(gè)String,我沒有試過傳入兩個(gè)對象的,而且我認(rèn)為,無論需要什么字段,一個(gè)對象就可以搞定,我傳入兩個(gè)參數(shù),只是做一次嘗試.如果只是一個(gè)對象的話,甚至都不需要用@Param.id也是會(huì)回寫的.

但是 collection="list"這個(gè)是一定要這樣寫的.不然會(huì)報(bào)錯(cuò)

要么全部成功,要么全部失敗,使用int去接收返回值,會(huì)接收到新增的條數(shù)的.

總結(jié)

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

相關(guān)文章

  • Java 模擬cookie登陸簡單操作示例

    Java 模擬cookie登陸簡單操作示例

    這篇文章主要介紹了Java 模擬cookie登陸簡單操作,結(jié)合實(shí)例形式分析了Java 模擬cookie登陸的相關(guān)原理與基本實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-03-03
  • Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹

    Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹

    這篇文章主要介紹了Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹,一共四中方法,供大家參考。
    2017-10-10
  • Java中Queue的poll()和remove()區(qū)別詳解

    Java中Queue的poll()和remove()區(qū)別詳解

    這篇文章主要介紹了Java中Queue的poll()和remove()區(qū)別詳解,Queue接口提供了許多方法,其中poll()和remove()是兩個(gè)常用的方法,它們的區(qū)別在于,當(dāng)隊(duì)列為空時(shí),poll()方法返回null,而remove()方法會(huì)拋出,需要的朋友可以參考下
    2023-07-07
  • java實(shí)現(xiàn)簡易的計(jì)算器界面

    java實(shí)現(xiàn)簡易的計(jì)算器界面

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡易的計(jì)算器界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java實(shí)現(xiàn)切割wav音頻文件的方法詳解【附外部jar包下載】

    java實(shí)現(xiàn)切割wav音頻文件的方法詳解【附外部jar包下載】

    這篇文章主要介紹了java實(shí)現(xiàn)切割wav音頻文件的方法,結(jié)合實(shí)例形式詳細(xì)分析了java切割wav音頻文件的相關(guān)原理、操作技巧與注意事項(xiàng),并附帶外部jar包供讀者下載,需要的朋友可以參考下
    2019-05-05
  • Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    這篇文章主要介紹了Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能,結(jié)合具體實(shí)例形式分析了java分治算法進(jìn)行排序索引的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)

    Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)

    本文主要介紹了Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn),通過靈活運(yùn)用Mybatis提供的動(dòng)態(tài)SQL功能,我們可以構(gòu)建更加靈活、高效的查詢語句,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2024-01-01
  • SpringCloud?hystrix斷路器與局部降級(jí)全面介紹

    SpringCloud?hystrix斷路器與局部降級(jí)全面介紹

    什么是服務(wù)降級(jí)?當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)實(shí)際業(yè)務(wù)情況及流量,對一些服務(wù)和頁面有策略的不處理或換種簡單的方式處理,從而釋放服務(wù)器資源以保證核心交易正常運(yùn)作或高效運(yùn)作
    2022-10-10
  • Spring中Bean有關(guān)NullPointerException異常的原因分析

    Spring中Bean有關(guān)NullPointerException異常的原因分析

    在Spring中使用@Autowired注解注入的bean不能在靜態(tài)上下文中訪問,否則會(huì)導(dǎo)致NullPointerException,解決方法包括避免在靜態(tài)方法中使用注入的bean,或者使用Spring的ApplicationContext來獲取bean,但后者不推薦
    2024-12-12
  • Java實(shí)現(xiàn)簡單雙色球搖獎(jiǎng)功能過程解析

    Java實(shí)現(xiàn)簡單雙色球搖獎(jiǎng)功能過程解析

    這篇文章主要介紹了Java實(shí)現(xiàn)簡單雙色球搖獎(jiǎng)功能過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論