批量删除多条数据

批量删除多条数据

对于很多初学者来说,当批量删除数据的时候,一般都会使用for循环进行删除,但是这样要多次打开数据库连接,性能和效率不高。下面教你怎么利用xml进行数据批量删除,只需一次连接即可。

首先删除数据的sql写法有两种
delete from ${tablename} where id = ?
delete from ${tablename} where jtt_primary_key in (id1,id2,id3)
利用第二中sql便可以实现批量删除,我们只需要拼接好SQL即可
在springboot项目中,我们只需要在controller传回需要删除的id数组合表名,在xml进行遍历即可

mapper

 public Integer deleteDataByIds(@Param("ids") Long[] ids, @Param("tablename") String tablename);

mapper.xml

 <delete id="deleteDataByIds">
        delete from ${tablename} where jtt_primary_key in
        <foreach collection="ids" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
 </delete>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
假设你使用的是 MyBatis 框架,以下是一个示例的批量删除的 XML 文件: ``` <delete id="deleteByIdList"> DELETE FROM table_name WHERE id IN <foreach collection="idList" item="id" open="(" separator="," close=")"> #{id} </foreach> </delete> ``` 这个 XML 文件中定义了一个名为 `deleteByIdList` 的 SQL 语句,它使用了 MyBatis 的 `foreach` 标签来实现批量删除。 具体地,`foreach` 标签的 `collection` 属性指定了要遍历的集合,这里是 `idList`;`item` 属性指定了遍历时的元素名,这里是 `id`;`open` 属性指定了遍历时的开头,这里是左括号 `(`;`separator` 属性指定了元素之间的分隔符,这里是逗号 `,`;`close` 属性指定了遍历时的结尾,这里是右括号 `)`。在 `foreach` 标签中,使用 `#{id}` 占位符来引用 `id` 元素的值。 这个 SQL 语句中的 `table_name` 和 `id` 字段名需要根据你的实际情况进行修改。在 Java 中,你可以通过调用 MyBatis 的 `delete` 方法来执行这个 SQL 语句,同时传入一个 `idList` 参数,它是一个包含要删除的 id 值的列表。例如: ``` List<Integer> idList = Arrays.asList(1, 2, 3); int count = sqlSession.delete("deleteByIdList", idList); ``` 这里,`sqlSession` 是 MyBatis 的会话对象,`deleteByIdList` 是 SQL 语句的 ID,`idList` 是一个包含要删除的 id 值的列表。执行 `sqlSession.delete` 方法时,MyBatis 会自动将 `idList` 参数传递给 XML 文件中的 `idList` 属性,并将 `#{id}` 占位符替换为实际的 id 值。执行结果是返回被删除的记录数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值