mybatis 批量插入/批量修改/批量删除

这篇博客介绍了如何使用Java的MyBatis框架进行批量数据库操作,包括批量新增记录、批量修改记录以及批量删除记录。批量新增通过<foreach>标签实现,批量修改和删除同样利用<foreach>处理多个条件,注意批量修改时需要设置允许多条SQL查询的配置。这些方法提高了数据库操作的效率。

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

一、批量新增

int batchSaveBook(@Param("bookList")List<Book> bookList);

<insert id="batchSaveBook" parameterType="java.util.List">

               insert into book (`name`, user_id, price) values

               <foreach collection="bookList" item="book" separator=",">

                     ( #{book.name,jdbcType=VARCHAR}, #{book.user_id,jdbcType=INTEGER}, #{book.price,jdbcType=DOUBLE})

             </foreach>

</insert>

二、批量修改(批量修改注意在Mysql连接后面添加&allowMultiQueries=true不然会报错

int batchUpdateBook(@Param("list") List<Book> bookList);

<update id="batchUpdateBook" parameterType="java.util.List">

       <foreach collection="list" item="book" open="" close="" separator=";">

            update book <set>

                     <if test="book.name!=null"> `name`=#{book.name,jdbcType=VARCHAR}, </if> 

                     <if test="book.user_id!=null"> user_id = #{book.user_id,jdbcType=INTEGER}, </if>

                    <if test="book.price!=null"> price = #{book.price,jdbcType=DOUBLE} </if>

                   </set>

           where id=#{book.id,jdbcType=INTEGER}

        </foreach>

</update>

三、批量删除

int batchDelete(@Param("list")List<Integer> ids);

         <delete id="batchDelete" parameterType="java.util.List">

                 delete from book where id IN

                 <foreach collection="list" item="ids" open="(" separator="," close=")" >

                         #{ids}
               </foreach>

               </delete>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值