MyBatis批量操作(mysql)

本文介绍了使用MyBatis进行批量删除和批量新增的操作方法,包括XML映射文件中的具体SQL语句示例及对应的Java接口定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis批处理的思路是将多条sql合并为1条sql执行,提高效率。

1:批量删除

以数组为例的写法:

    <delete id="batchDeleteGroupMember" parameterType="net.sinolbs.ycd.entity.group.GroupMember">
        delete from group_members where groupId in
        <foreach item="groupMember" collection="array" open="(" separator="," close=")">
            #{groupId}
        </foreach>
    </delete>

以集合为例的写法:

   <delete id="batchDeleteGroupMember" parameterType="net.sinolbs.ycd.entity.group.GroupMember">
        delete from group_members where groupId in
        <foreach item="groupMember" collection="list" open="(" separator="," close=")">
            #{groupMember.groupId}
        </foreach>
   </delete>

mapper

void batchDeleteGroupMember(List<GroupMember> list);

说明:

item集合或数组里的元素(对象)

collection集合类型(数组或集合)

open以什么开始

close以什么结束

separator中间以什么相连

2:批量新增

     <insert id="insertByBatch" parameterType="java.util.List">  
            insert into car_album
             (id, smallImage, largeImage, imgName, carModelsId,type,  imgPageHref, largeImgPageHref)
             values
             <foreach collection ="list" item="img" index= "index" separator =",">
                 (
                 #{img.id}, #{img.smallImage}, #{img.largeImage},  #{img.imgName},
                 #{img.carModelsId}, #{img.type}, #{img.imgPageHref}, #{img.largeImgPageHref}
                 )
             </foreach >
    </insert> 
生成的sql

insert into car_album (id, smallImage, largeImage, imgName, carModelsId,type, imgPageHref, largeImgPageHref) values 
( ?, ?, ?, ?, ?, ?, ?, ? ) , ( ?, ?, ?, ?, ?, ?, ?, ? ) , ( ?, ?, ?, ?, ?, ?, ?, ? ) , ( ?, ?, ?, ?, ?, ?, ?, ? ) ,
 ( ?, ?, ?, ?, ?, ?, ?, ? ) , ( ?, ?, ?, ?, ?, ?, ?, ? ) 




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李秀才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值