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

mybatis實現(xiàn)批量更新全過程

 更新時間:2025年11月10日 08:51:33   作者:大大怪~將軍  
Mybatis實現(xiàn)批量更新的三種方式:foreach標簽、casewhen語句和choose語句,foreach標簽適用于大量數(shù)據(jù)更新,casewhen語句適用于一次性批量更新較少記錄,BatchExecutor批處理器適用于需要在一次數(shù)據(jù)庫會話中批量執(zhí)行多個SQL語句,但可能不支持所有數(shù)據(jù)庫

mybatis實現(xiàn)批量更新

注:Mybatis實現(xiàn)批量更新有三種方式,分別是使用foreach標簽、使用SQL的case when語句和使用動態(tài)SQL的choose語句。

具體實現(xiàn)方法如下:

1:使用foreach標簽

   <update id="pubAndTakes">
        <foreach collection="idList" item="item" separator=";" open="begin" close=";end;">
            UPDATE LY_SJS_WDZM_YXLXD_PZRY SET ZT = '1' , CJSJ = TO_CHAR(SYSDATE,'yyyy-MM-dd hh:mm:ss')
            ,BBH = #{item.bbh}
            WHERE ZT = #{item.zt} AND ID = #{item.id}
        </foreach>
    </update>

2:使用SQL的case when語句

<update id="updateBatch" parameterType="java.util.List">
    UPDATE your_table
    SET your_column1 = 
        <foreach collection="list" item="item" separator=",">
            WHEN your_id = #{item.id} THEN #{item.column1}
        </foreach>
    WHERE your_id IN
        <foreach collection="list" item="item" open="(" close=")" separator=",">
            #{item.id}
        </foreach>
</update>

3:使用 Case 語句

在 SQL 更新語句中使用 CASE 語句,根據(jù)條件進行更新。這種方式可以避免使用 foreachBatchExecutor,但對于大量數(shù)據(jù)可能性能較差。

<update id="updateBatch" parameterType="java.util.List">
    UPDATE your_table
    SET your_column1 = 
        CASE
            <foreach collection="list" item="item" separator=" ">
                WHEN your_id = #{item.id} THEN #{item.column1}
            </foreach>
        END,
    your_column2 =
        CASE
            <foreach collection="list" item="item" separator=" ">
                WHEN your_id = #{item.id} THEN #{item.column2}
            </foreach>
        END
    WHERE your_id IN
        <foreach collection="list" item="item" open="(" close=")" separator=",">
            #{item.id}
        </foreach>
</update>

這種方式的 SQL 語句會根據(jù)條件進行更新,適用于一次性批量更新較少的記錄。

注:

使用BatchExecutor批處理器

MyBatis 提供了 BatchExecutor 批處理器,可以在一次數(shù)據(jù)庫會話中批量執(zhí)行多個 SQL 語句。這種方式需要在代碼中手動創(chuàng)建批處理器,并調(diào)用 batch 方法執(zhí)行批量更新。

注意,此方式可能不支持所有數(shù)據(jù)庫,因此請仔細查閱文檔以確認你的數(shù)據(jù)庫是否支持。

SqlSession sqlSession = sqlSessionFactory
                           .openSession(ExecutorType.BATCH, false);

YourMapper mapper = sqlSession.getMapper(YourMapper.class);
try {
    for (YourEntity entity : entities) {
        mapper.update(entity);
    }
    sqlSession.commit();
} finally {
    sqlSession.close();
}

總結

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

相關文章

  • springboot實現(xiàn)用戶名查找用戶功能

    springboot實現(xiàn)用戶名查找用戶功能

    本文主要介紹了springboot實現(xiàn)用戶名查找用戶功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Java 如何將表格數(shù)據(jù)導入word文檔中

    Java 如何將表格數(shù)據(jù)導入word文檔中

    這篇文章主要介紹了Java將表格數(shù)據(jù)導入word文檔中的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中的ConcurrentHashMap原理詳解

    Java中的ConcurrentHashMap原理詳解

    這篇文章主要介紹了Java中的ConcurrentHashMap原理詳解,ConcurrentHashMap和HashMap一樣,是一個存放鍵值對的容器,使用hash算法來獲取值的地址,因此時間復雜度是O(1),查詢非???需要的朋友可以參考下
    2023-12-12
  • 淺析Spring Boot單體應用熔斷技術的使用

    淺析Spring Boot單體應用熔斷技術的使用

    這篇文章主要介紹了淺析Spring Boot單體應用熔斷技術的使用,幫助大家更好的理解和使用spirngboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Spring加載加密的配置文件詳解

    Spring加載加密的配置文件詳解

    這篇文章主要為大家詳細介紹了Spring加載加密的配置文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Mybatis聯(lián)合查詢XML與注解對比分析

    Mybatis聯(lián)合查詢XML與注解對比分析

    文章對比了MyBatis中XML配置方式和注解方式查詢多表關聯(lián)的效率和實現(xiàn)方式,XML配置方式執(zhí)行聯(lián)合查詢效率較高,但注解方式雖然可以獨立使用,但在處理復雜映射時不如XML靈活
    2026-03-03
  • 在Spring?AI?中配置多個?LLM?客戶端的詳細過程

    在Spring?AI?中配置多個?LLM?客戶端的詳細過程

    本文探討了如何在單個Spring?AI應用中集成多個LLM,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-10-10
  • IDEA實現(xiàn)純java項目并打包jar的步驟(不使用Maven,Spring)

    IDEA實現(xiàn)純java項目并打包jar的步驟(不使用Maven,Spring)

    在Java開發(fā)中我們通常會將我們的項目打包成可執(zhí)行的Jar包,以便于在其他環(huán)境中部署和運行,這篇文章主要介紹了IDEA實現(xiàn)純java項目并打包jar(不使用Maven,Spring)的相關資料,需要的朋友可以參考下
    2025-08-08
  • Java使用JDBC連接Oracle_MSSQL實例代碼

    Java使用JDBC連接Oracle_MSSQL實例代碼

    這篇文章主要介紹了Java使用JDBC連接Oracle_MSSQL實例代碼,需要的朋友可以參考下
    2014-01-01
  • 程序包org.springframework不存在的解決辦法

    程序包org.springframework不存在的解決辦法

    這篇文章主要介紹了程序包org.springframework不存在的解決辦法,在使用IDEA創(chuàng)建SpringBoot項目時,剛打開無法正常運行,本文通過圖文結合的方式給大家介紹的非常詳細,具有一定參考價值,需要的朋友可以參考下
    2024-07-07

最新評論

陆川县| 镇巴县| 元氏县| 石河子市| 岗巴县| 湖州市| 句容市| 新竹县| 霍山县| 张家口市| 施秉县| 鹤壁市| 牡丹江市| 三门峡市| 武乡县| 舞阳县| 迁安市| 甘泉县| 惠安县| 广元市| 永寿县| 神池县| 隆德县| 天津市| 通化市| 金华市| 海淀区| 阜康市| 太原市| 南和县| 伊宁市| 沅陵县| 靖西县| 渝北区| 湖南省| 西峡县| 伊金霍洛旗| 衡东县| 开原市| 叶城县| 兰溪市|