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

mybatis中批量更新多個字段的2種實現(xiàn)方法

 更新時間:2023年09月01日 09:54:17   作者:清水  
當(dāng)我們使用mybatis的時候,可能經(jīng)常會碰到一批數(shù)據(jù)的批量更新問題,因為如果一條數(shù)據(jù)一更新,那每一條數(shù)據(jù)就需要涉及到一次數(shù)據(jù)庫的操作,本文主要介紹了mybatis中批量更新多個字段的2種實現(xiàn)方法,感興趣的可以了解一下

在mybatis中批量更新多個字段

推薦使用如下操作:

方式1:在Dao層接口中:

void updateBatch(@Param("list")List<Student> list);

在對應(yīng)的mapper文件中如下:

<update id="updateBatch" parameType="java.lang.List">
  update student 
    <trim prefix="set" suffixOverrides=",">
       <trim prefix=" age = case " suffix="end,">
          <foreach collection="list" item="stu" index="index">
            <if test=" item.age != null and item.id != null">
              when id = #{item.id} then #{item.age}
            </if>
            <if test=" item.age == null and item.id != null">
              when id = #{item.id} then mydata_table.age   //原始值
            </if>
          </foreach>
       </trim>
       <trim prefix=" name = case" suffix="end,">
          <foreach collection="list" item="stu" index="index">
            <if test=" item.name!= null and item.id != null">
              when id = #{item.id} then #{item.name}
            </if>
            <if test=" item.name == null and item.id != null">
              when id = #{item.id} then mydata_table.name   //原始值
            </if>
          </foreach>
       </trim>
    </trim>
</update>

上面的sql語句打印出來,應(yīng)該是這個樣子的:

update student  
 set  age = case
      when id = #{item.id} then #{item.status}//此處應(yīng)該是<foreach>展開值  
       when id = #{item.id} then #{item.status}
      .... 
    end,
    name = case
      when id = #{item.id} then #{item.status}
      ...
    end
 where id in (?,?,?,?...);

<trim>屬性說明 

1.prefix,suffix 表示在trim標(biāo)簽包裹的部分的前面或者后面添加內(nèi)容 
2.如果同時有prefixOverrides,suffixOverrides 表示會用prefix,suffix覆蓋Overrides中的內(nèi)容。 
3.如果只有prefixOverrides,suffixOverrides 表示刪除開頭的或結(jié)尾的xxxOverides指定的內(nèi)容 

方式2:在Dao層接口方法定義同上

mapper文件如下:

<update id="updateBatch"  parameterType="java.util.List">  
    <foreach collection="list" item="item" index="index" open="" close="" separator=";">
        update student
        <set>
            name=#{item.name},
       age = #{item.age}
        </set>
        where id = #{item.id}
    </foreach>      
</update>

到此這篇關(guān)于mybatis中批量更新多個字段的2種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)mybatis 批量更新多個字段內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別實例分析

    Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別實例分析

    這篇文章主要介紹了Java Lambda表達式與匿名內(nèi)部類的聯(lián)系和區(qū)別,結(jié)合實例形式分析了Java Lambda表達式與匿名內(nèi)部類功能、用法、區(qū)別及操作注意事項,需要的朋友可以參考下
    2019-10-10
  • 三種Spring BeanName生成器,你了解嗎

    三種Spring BeanName生成器,你了解嗎

    無論我們是通過 XML 文件,還是 Java 代碼,亦或是包掃描的方式去注冊 Bean,都可以不設(shè)置BeanName,而Spring均會為之提供默認(rèn)的 beanName,本文我們就來看看 Spring 中三種處理不同情況的 beanName生成器吧
    2023-09-09
  • Idea2024創(chuàng)建Maven項目沒有src文件夾的解決步驟

    Idea2024創(chuàng)建Maven項目沒有src文件夾的解決步驟

    本文主要介紹了Idea2024創(chuàng)建Maven項目沒有src文件夾,文中通過圖文示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • JAVA SpringBoot集成Jasypt進行加密、解密的詳細(xì)過程

    JAVA SpringBoot集成Jasypt進行加密、解密的詳細(xì)過程

    文章詳細(xì)介紹了如何在SpringBoot項目中集成Jasypt進行加密和解密,包括Jasypt簡介、如何添加依賴、配置加密密鑰、加密敏感數(shù)據(jù)、自定義加密配置以及加密與解密的示例,通過這些步驟,開發(fā)者可以輕松地保護應(yīng)用程序中的敏感信息,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Java中的線程池如何實現(xiàn)線程復(fù)用

    Java中的線程池如何實現(xiàn)線程復(fù)用

    這篇文章主要介紹了Java中的線程池如何實現(xiàn)線程復(fù)用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 自制Java工具實現(xiàn)翻譯鼠標(biāo)選中文本

    自制Java工具實現(xiàn)翻譯鼠標(biāo)選中文本

    這篇文章主要為大家詳細(xì)介紹了如何自制Java工具實現(xiàn)ctrl+c+c翻譯鼠標(biāo)選中文本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-01-01
  • 簡單了解Java方法的定義和使用實現(xiàn)詳解

    簡單了解Java方法的定義和使用實現(xiàn)詳解

    這篇文章主要介紹了簡單了解Java方法的定義和使用實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • java中使用zxing批量生成二維碼立牌

    java中使用zxing批量生成二維碼立牌

    本篇文章主要介紹了java中使用zxing批量生成二維碼立牌,非常具有實用價值,需要的朋友可以參考下。
    2016-12-12
  • 在Spring Boot中如何使用log4j記錄日志

    在Spring Boot中如何使用log4j記錄日志

    這篇文章主要介紹如何在spring boot中引入log4j,以及一些基礎(chǔ)用法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 詳解PowerDesigner之CDM、PDM、SQL之間轉(zhuǎn)換

    詳解PowerDesigner之CDM、PDM、SQL之間轉(zhuǎn)換

    這篇文章主要介紹了詳解PowerDesigner之CDM、PDM、SQL之間轉(zhuǎn)換的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10

最新評論

浦城县| 长汀县| 布拖县| 西畴县| 藁城市| 棋牌| 察隅县| 延寿县| 蕲春县| 寻甸| 清丰县| 德庆县| 宾阳县| 绵竹市| 蛟河市| 当阳市| 张家界市| 宜兰市| 南康市| 吉木乃县| 祁东县| 邓州市| 怀远县| 阳新县| 会昌县| 河津市| 本溪市| 乌苏市| 昆明市| 四川省| 通城县| 恩平市| 梁山县| 京山县| 九寨沟县| 乐山市| 缙云县| 北海市| 宝鸡市| 团风县| 尼勒克县|