mybatis 批量删除
时间: 2023-11-07 19:40:41 浏览: 89
可以使用MyBatis提供的deleteBatch方法来实现批量删除。使用方法如下:
1.在Mapper接口中定义一个删除方法,该方法传入一个List类型的参数,即要删除的记录的id集合。
@Delete("<script> delete from my_table where id in "
+ "<foreach collection='ids' open='(' separator=',' close=')' item='id'>#{id}</foreach>"
+ "</script>")
void deleteByIds(@Param("ids") List<Long> ids);
2.在执行删除操作时,调用该方法并传入一个包含要删除记录id的List。
List<Long> ids = Arrays.asList(1L, 2L, 3L);
mapper.deleteByIds(ids);
这样就实现了批量删除。
相关问题
mybatis批量删除
MyBatis 中批量删除数据,可以使用其提供的 `deleteBatch` 方法。该方法接收一个 List 参数,其中包含了要删除的多个对象。以下是示例代码:
```
public interface UserMapper {
void deleteBatch(List<Integer> ids);
}
```
```
<delete id="deleteBatch" parameterType="java.util.List">
DELETE FROM user WHERE id IN
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
```
在上面的示例中,`deleteBatch` 方法的参数是一个 Integer 类型的 List,其中包含了要删除的多个用户的 ID。MyBatis 的 XML 配置文件中定义了一个 `<delete>` 标签,通过 `<foreach>` 标签将所有要删除的 ID 拼接成 SQL 语句的 IN 子句。
使用该方法时,可以直接传入一个 ID 的 List,例如:
```
List<Integer> ids = Arrays.asList(1, 2, 3, 4);
userMapper.deleteBatch(ids);
```
这样就可以批量删除 ID 为 1、2、3、4 的用户了。
springboot mybatis批量删除
1. 在Mapper接口中定义一个批量删除方法:
```java
int deleteBatch(List<Long> ids);
```
2. 在Mapper.xml文件中编写SQL语句:
```xml
<delete id="deleteBatch">
delete from table_name where id in
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
```
3. 在Service层调用Mapper接口的批量删除方法:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public int deleteBatch(List<Long> ids) {
return userMapper.deleteBatch(ids);
}
}
```
4. 在Controller层调用Service层的批量删除方法:
```java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@DeleteMapping("/deleteBatch")
public Result deleteBatch(@RequestBody List<Long> ids) {
int count = userService.deleteBatch(ids);
return Result.success(count);
}
}
```
5. 在前端页面中调用Controller层的批量删除接口。
阅读全文