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

mybatis使用case when按照條件進行更新方式

 更新時間:2025年07月24日 08:38:09   作者:linab112  
示例一通過條碼批量更新入庫和剩余數量,直接高效;示例二使用set和trim標簽,實現動態(tài)字段更新與條件優(yōu)化,結構更復雜但靈活性更高

mybatis使用case when按照條件更新

示例代碼

<update id="updateNrPurchaseOrderDetailByGoodsBarcode">
    update nr_purchase_order_detail
    set stored_num =
    <foreach collection="barcodeList" item="item" index="index"
             separator=" " open="case goods_barcode" close="end">
        when #{item.barcode} then stored_num + #{item.receiveNum}
    </foreach>
    ,unstored_num =
    <foreach collection="barcodeList" item="item" index="index"
             separator=" " open="case goods_barcode" close="end">
        when #{item.barcode} then actual_goods_num - stored_num
    </foreach>
    where goods_barcode in
    <foreach collection="barcodeList" item="item" index="index" separator="," open="(" close=")">
        #{item.barcode}
    </foreach>
    and parent_id = #{id}
</update>
<!--caseWhen形式更新-->
<update id="testCaseWhen" parameterType="java.util.Map">
    UPDATE ${user}
    <set>
        <trim prefix="id= CASE id" suffix="END,">
            <foreach collection="list" item="param">
                <if test="param.id != null and id != ''">
                    WHEN #{param.id} THEN #{param.id}
                </if>
            </foreach>
        </trim>
        <trim prefix="username = CASE id" suffix="END,">
            <foreach collection="list" item="param">
                <if test="param.username != null and param.username != ''">
                    WHEN #{param.} THEN #{param.username}
                </if>
            </foreach>
        </trim>
        <trim prefix="password = CASE id" suffix="END,">
            <foreach collection="list" item="param">
                <if test="param.password != null and param.password != ''">
                    WHEN #{param.id} THEN #{param.password}
                </if>
            </foreach>
        </trim>
    </set>
    <where>
        id in
        <foreach collection="list" item="param" separator="," open="(" close=")">
            #{param.id}
        </foreach>
    </where>
</update>

說明

上述第一個示例中,按照條碼進行批量更新,將所有的條碼對應的入庫數量和剩余數量進行更新。

第二個示例中,又使用了set標簽和trim標簽,感覺更為復雜。

總結

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

相關文章

  • java如何獲取用戶登錄ip、瀏覽器信息、SessionId

    java如何獲取用戶登錄ip、瀏覽器信息、SessionId

    這篇文章主要介紹了java如何獲取用戶登錄ip、瀏覽器信息、SessionId,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 徹底搞明白Spring中的自動裝配和Autowired注解的使用

    徹底搞明白Spring中的自動裝配和Autowired注解的使用

    這篇文章主要介紹了徹底搞明白Spring中的自動裝配和Autowired注解的使用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 如何使用Java語言編寫打地鼠游戲全過程

    如何使用Java語言編寫打地鼠游戲全過程

    打地鼠是我們非常熟悉的一款小游戲,它的游戲結構和規(guī)則也都比較簡單,那么如果能夠親自徒手開發(fā)這樣的一款經典小游戲呢?這篇文章主要給大家介紹了關于如何使用Java語言編寫打地鼠游戲的相關資料,需要的朋友可以參考下
    2024-06-06
  • java實現對兩張表進行數據同步

    java實現對兩張表進行數據同步

    文章描述了在Java中使用SQL Server的MERGE語句實現兩張表的同步操作,適用于主表查詢、附表增刪改的場景,MERGE語句可以同時執(zhí)行插入和更新操作,適用于Oracle和SQL Server,但不適用于MySQL和PostgreSQL,可通過自定義注解實現接口調用后的同步操作
    2026-05-05
  • Springboot?中使用Sentinel的詳細步驟

    Springboot?中使用Sentinel的詳細步驟

    文章介紹了如何在SpringBoot中使用Sentinel進行限流和熔斷降級,首先添加依賴,配置Sentinel控制臺地址,定義受保護的資源,配置流控規(guī)則,啟動Sentinel控制臺和SpringBoot應用,最后測試和監(jiān)控,感興趣的朋友一起看看吧
    2025-02-02
  • 徹底了解java中ReentrantLock和AQS的源碼

    徹底了解java中ReentrantLock和AQS的源碼

    這篇文章主要介紹了徹底了解java中ReentrantLock和AQS的源碼,想了解鎖機制的同學,一定要參考下
    2021-04-04
  • Java ArrayList add(int index, E element)和set(int index, E element)兩個方法的說明

    Java ArrayList add(int index, E element)和set(int index, E el

    今天小編就為大家分享一篇關于Java ArrayList add(int index, E element)和set(int index, E element)兩個方法的說明,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • IDEA反編譯jar,查看源碼方式

    IDEA反編譯jar,查看源碼方式

    該篇文章總結了查看Java本地jar包注釋的幾種方法,包括使用快捷鍵CTRL+q和在設置中設置自動浮現注釋
    2024-11-11
  • Mybatis 查詢語句條件為枚舉類型時報錯的解決

    Mybatis 查詢語句條件為枚舉類型時報錯的解決

    這篇文章主要介紹了Mybatis 查詢語句條件為枚舉類型時報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot容器化部署之Docker與Kubernetes操作指南

    SpringBoot容器化部署之Docker與Kubernetes操作指南

    本文介紹了如何將SpringBoot應用進行容器化部署,通過Docker和Kubernetes進行編排和管理,涵蓋了從項目創(chuàng)建、Dockerfile編寫、鏡像構建、容器運行到Kubernetes部署、監(jiān)控和維護的全流程
    2025-12-12

最新評論

阳朔县| 赤峰市| 慈利县| 鄂尔多斯市| 乐至县| 银川市| 巢湖市| 临邑县| 隆林| 永定县| 泰安市| 宣城市| 濮阳市| 恩平市| 泊头市| 镇巴县| 磐安县| 沛县| 德化县| 仙桃市| 河西区| 康平县| 宾阳县| 兰州市| 宁城县| 边坝县| 胶州市| 潍坊市| 宁陕县| 来宾市| 海晏县| 武鸣县| 曲沃县| 宁武县| 仪陇县| 浦城县| 鹤庆县| 江川县| 定西市| 陇西县| 小金县|