首页 > 其他分享 >mybatis批量更新(where的条件越少,最好是主键,效率越高)

mybatis批量更新(where的条件越少,最好是主键,效率越高)

时间:2024-06-21 10:43:42浏览次数:23  
标签:ali id when jpg 主键 item mybatis where ID

    <update id="updateBatch" databaseId="sqlserver">
        update T_RISK_TASK_SERVICE

        <trim prefix="set" suffixOverrides=",">
            <trim prefix=" TASK_REALITY_START_TIME = case " suffix=" end, ">
                <foreach collection="list" item="item">
                    <if test="item.taskRealityStartTime!= null">
                        when ID = #{item.id} then #{item.taskRealityStartTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix=" TASK_REALITY_END_TIME = case " suffix=" end, ">
                <foreach collection="list" item="item">
                    <if test="item.taskRealityEndTime!= null">
                        when ID = #{item.id} then #{item.taskRealityEndTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix=" TASK_NOTE = case " suffix=" end, ">
                <foreach collection="list" item="item">
                    <if test="item.taskNote!= null">
                        when ID = #{item.id} then #{item.taskNote}
                    </if>
                </foreach>
            </trim>
            <trim prefix=" TASK_FILE = case " suffix=" end, ">
                <foreach collection="list" item="item">
                    <if test="item.taskFile!= null">
                        when ID = #{item.id} then #{item.taskFile}
                    </if>
                </foreach>
            </trim>
            <trim prefix=" IS_SUBMIT = case " suffix=" end, ">
                <foreach collection="list" item="item">
                    <if test="item.isSubmit!= null">
                        when ID = #{item.id} then #{item.isSubmit}
                    </if>
                </foreach>
            </trim>
        </trim>

        where
        ID in
        <foreach collection="list" item="item" open="(" close=")" separator=",">
            #{item.id}
        </foreach>
    </update>

效果:

 update T_RISK_TASK_SERVICE
set TASK_REALITY_START_TIME = case 
    when ID = 1 then 2024-06-12T00:00
    when ID = 2 then 2024-06-12T00:00
    when ID = 3 then 2024-06-15T00:00
end,TASK_REALITY_END_TIME = case 
    when ID = 1 then 2024-06-13T00:00
    when ID = 2 then 2024-06-13T00:00
    when ID = 3 then 2024-06-12T00:00
end,TASK_NOTE = case 
    when ID = 1 then '备注1'
    when ID = 2 then '备注1'
    when ID = 3 then '备注1'
end, TASK_FILE = case 
    when ID = 1 then '[{"id":"6668fd1531fb738df0b52465","name":"1718156566757jpg58523.jpg","new_id":"6668fd1531fb738df0b52465","url":"/ali/getcontent/6668fd1531fb738df0b52465.jpg","order_id":1},{"id":"666fad99c9e1c9927ca24688","name":"1718594969043jpg58523.jpg","new_id":"666fad99c9e1c9927ca24688","url":"/ali/getcontent/666fad99c9e1c9927ca24688.jpg","order_id":2},{"id":"6670fcef070c973610004005","name":"1718680815365png2103.png","new_id":"6670fcef070c973610004005","url":"/ali/getcontent/6670fcef070c973610004005.png","order_id":3}]'
    when ID = 2 then '[{"id":"666901a431fb738df0b52472","name":"1718157734253png2103.png","new_id":"666901a431fb738df0b52472","url":"/ali/getcontent/666901a431fb738df0b52472.png","order_id":1},{"id":"66695e9be9ae9c2f68db3cc3","name":"1718181532550jpg58523.jpg","new_id":"66695e9be9ae9c2f68db3cc3","url":"/ali/getcontent/66695e9be9ae9c2f68db3cc3.jpg","order_id":2}]'
    when ID = 3 then '[{"id":"666901b631fb738df0b52476","name":"1718157752156png1094.png","new_id":"666901b631fb738df0b52476","url":"/ali/getcontent/666901b631fb738df0b52476.png","order_id":1},{"id":"666fb0fdc9e1c9927ca247e9","name":"1718595837429jpg58523.jpg","new_id":"666fb0fdc9e1c9927ca247e9","url":"/ali/getcontent/666fb0fdc9e1c9927ca247e9.jpg","order_id":2}]'
end
where ID in (1, 2, 3)

 

标签:ali,id,when,jpg,主键,item,mybatis,where,ID
From: https://www.cnblogs.com/privateLogs/p/18260082

相关文章

  • Springboot+Vue+Mybatis-Plus+Easyexcel实现文件导入+导出的excel单元格下拉列表
    引言文件的导入与导出功能扮演着至关重要的角色,特别是在处理大量数据和复杂的表格时。通过整合SpringBoot、Vue、Mybatis-Plus和Easyexcel等先进技术,我们可以构建一个高效、灵活的文件处理系统。其中,Excel作为广泛使用的电子表格软件,其单元格下拉列表功能对于数据录入和校验......
  • 持续性学习-Day19(MyBatis)
    MyBatis参考:https://www.w3cschool.cn/mybatis3/mybatis3-rhna3ndr.html环境:JDKMySQLMavenIDEA1、简介1.1什么是MyBatisMyBatis是一款优秀的持久层框架它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获......
  • 窥探Mybatis配置到执行源码剖析
    mybatis自动配置过程首先我们项目中使用mybatis如果是mybatis的话会引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</ve......
  • mybatisplus代码生成
    1.引入依赖点击查看代码<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.......
  • MyBatis批量插入不用foreach
    原文链接:MyBatis批量插入不用foreach–每天进步一点点(longkui.site)近日,项目中有一个耗时较长的Job存在CPU占用过高的问题,经排查发现,主要时间消耗在往MyBatis中批量插入数据。mapperconfiguration是用foreach循环做的,差不多是这样。(由于项目保密,以下代码均为自己手写的demo......
  • MyBatis
    MyBatis1、MyBatis是什么框架?MyBatis是一个持久层框架,它是Java编程语言中用于操作关系型数据库的一个工具。MyBatis的主要作用是简化数据库访问的过程,提供了一种方便、灵活的方式来进行SQL操作。相比传统的JDBC编程方式,MyBatis可以更加高效地管理数据库连接、执行SQL......
  • mybatis-mp 高级用法:ORM+SQL模板,真正意义实现ORM!!!
    官网:mybatis-mp.cn目前ORM以JPAPLUS为首的ORM,遇到稍微复杂的、或者数据库特性函数时通常需要自己写sql,或代码中,或xml中,这就有点难受了1:有没有好的办法?mybatis-mp的做法就是ORM+SQL模板,SQL模板不仅仅是sql字符串,它还帮你替换关系的信息:列SysUserRo......
  • Mybatis的Mapper中方法入参什么时候加@Param
    参数情况:一个基本类型--不需要多个基本类型--需要一个对象 --不需要多个对象  --不需要一个集合  --不需要 单个基本类型不用加@ParamMapper接口方法:voiddeleteUserById(LonguserId);XML中的SQL语句:<deleteid="deleteUserById"parameterType=......
  • MybatisPlus之继承IService
    有一些简简单单的数据库增删改查还需要Service到Mapper一步步地来吗?答案是否定地,甚至代码都不用实现哦。这就是因为IService接口提供了一些基础功能的实现IService和ServiceImplIService只是一个接口,它并不能实现功能,如果你的service的接口继承它,继承过来的只是接口没有功......
  • MyBatis之ResultMap
    ResultMap的属性列表 resultMap标签介绍constructor-用于在实例化类时,注入结果到构造方法中idArg-ID参数;标记出作为ID的结果可以帮助提高整体性能arg-将被注入到构造方法的一个普通结果id–一个ID结果;标记出作为ID的结果可以帮助提高整体性能,用于主键......