Mybatis 批量删除数据SQL 示例
时间: 2024-12-23 11:26:03 浏览: 0
mybatis 批量插入返回主键
MyBatis 提供了一种方便的方式来批量执行 SQL 操作,包括批量删除。假设你有一个 User 表,你想通过 ID 列删除一批用户,可以这样做:
首先,在 Mapper 接口中定义一个批量删除的方法,比如:
```java
public int deleteUsersByIds(@Param("ids") List<Integer> ids);
```
这里的 `@Param` 注解用于标记参数,`ids` 是你要传入的一系列用户 ID。
然后在对应的 XML 或者 Java Config 配置文件中编写 SQL 语句。XML 示例:
```xml
<mapper namespace="com.example.UserMapper">
<delete id="batchDeleteUsers" parameterType="java.util.List">
DELETE FROM user WHERE id IN
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
</mapper>
```
Java Config 示例:
```java
@DeleteProvider(type = UserMapper.class, method = "batchDeleteUsers")
int batchDeleteUsers(List<Integer> ids);
```
在你的服务层或者业务代码里,你可以像这样调用这个方法并传递用户 ID 列表:
```java
List<Integer> userIdsToDelete = ...; // 用户 ID 列表
int result = sqlSession.delete("UserMapper.batchDeleteUsers", userIdsToDelete);
```
阅读全文