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

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

 更新時(shí)間:2023年11月03日 10:37:20   作者:軟件宮城獅  
這篇文章主要介紹了mybatis批量插入返回主鍵失敗的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(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批量新增之主鍵回寫

正常批量新增比較簡(jiǎn)單 :

寫個(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è)對(duì)象,一個(gè)String,我沒有試過傳入兩個(gè)對(duì)象的,而且我認(rèn)為,無論需要什么字段,一個(gè)對(duì)象就可以搞定,我傳入兩個(gè)參數(shù),只是做一次嘗試.如果只是一個(gè)對(duì)象的話,甚至都不需要用@Param.id也是會(huì)回寫的.

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

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

總結(jié)

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

相關(guān)文章

  • JDK1.8安裝與配置超詳細(xì)教程

    JDK1.8安裝與配置超詳細(xì)教程

    JDK1.8即為JDK8,JDK8是目前是最成熟最穩(wěn)定的版本,本文將詳細(xì)介紹JDK1.8的安裝與配置,需要的朋友可以參考下
    2023-03-03
  • Java Swing中的文本區(qū)(JTextArea)實(shí)現(xiàn)換行保存到文件的幾個(gè)方法

    Java Swing中的文本區(qū)(JTextArea)實(shí)現(xiàn)換行保存到文件的幾個(gè)方法

    這篇文章主要介紹了Java Swing中的文本區(qū)(JTextArea)實(shí)現(xiàn)換行保存到文件的幾個(gè)方法,本文給出了4種方法,需要的朋友可以參考下
    2014-10-10
  • 詳解java如何解析和生成sql

    詳解java如何解析和生成sql

    JSQLParser?是一個(gè)開源的?Java?庫,用于解析?SQL?語句并將其轉(zhuǎn)換為抽象語法樹,下面我們就來看看java是如何使用JSQLParser解析和生成sql的吧
    2024-12-12
  • IDEA中java斷言assert語法及使用

    IDEA中java斷言assert語法及使用

    這篇文章主要介紹了IDEA中java斷言assert語法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • java項(xiàng)目中常用指標(biāo)UV?PV?QPS?TPS含義以及統(tǒng)計(jì)方法

    java項(xiàng)目中常用指標(biāo)UV?PV?QPS?TPS含義以及統(tǒng)計(jì)方法

    文章介紹了現(xiàn)代Web應(yīng)用中性能監(jiān)控和分析的重要性,涵蓋了UV、PV、QPS、TPS等關(guān)鍵指標(biāo)的統(tǒng)計(jì)方法,并提供了示例代碼,同時(shí),文章還討論了性能優(yōu)化和瓶頸分析的策略,以及使用Grafana等可視化工具進(jìn)行監(jiān)控與告警的重要性
    2025-01-01
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(49)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(49)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • Java中的對(duì)象和引用詳解

    Java中的對(duì)象和引用詳解

    這篇文章主要介紹了Java中的對(duì)象和引用詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java基于iText7實(shí)現(xiàn)PDF添加通用文本水印的示例詳解

    Java基于iText7實(shí)現(xiàn)PDF添加通用文本水印的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java基于iText7實(shí)現(xiàn)PDF添加通用文本水印的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2026-02-02
  • JPA配置詳解之jpaProperties用法

    JPA配置詳解之jpaProperties用法

    這篇文章主要介紹了JPA配置詳解之jpaProperties用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java?斷言?assert的用法詳解

    Java?斷言?assert的用法詳解

    Java?assert斷言機(jī)制是Java5中推出的新特性,它主要用于在程序運(yùn)行時(shí)檢查狀態(tài)或假設(shè)的正確性,本篇文章將全面詳細(xì)地講解Java?assert斷言機(jī)制,包括斷言概述、語法規(guī)則、工作原理、使用場(chǎng)景、注意事項(xiàng)以及示例代碼等方面,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

柞水县| 临夏县| 大名县| 乌兰浩特市| 当雄县| 秭归县| 慈利县| 中宁县| 丹江口市| 高州市| 启东市| 扬州市| 涿州市| 莱西市| 思茅市| 高平市| 平阴县| 资源县| 牙克石市| 宁阳县| 靖州| 社旗县| 衡南县| 景德镇市| 洮南市| 搜索| 金平| 积石山| 赤城县| 彰化市| 疏勒县| 抚顺市| 连城县| 莱西市| 永吉县| 长葛市| 乾安县| 太原市| 思南县| 万载县| 宝山区|