Spring中进行批量操作

有时我们需要执行批量操作,比如说批量删除等,前端只需要将要删除的记录的唯一id作为数组传递,后端可以依次自动生成SQL语句,比一条一条循环执行SQL效率会高很多;

1、定义VO对象:

1 public class IdsVO implements Serializable {
2     private static final long serialVersionUID = -1697074210738638989L;
3 
4     private Long[] ids;
5 }

2、Controller中定义:

public Response<Boolean> batchDelete(@ApiParam(value = "ids", required = true) @RequestBody IdsVO ids) {
   ............
   batchUpdate(ids);
}

3、使用LambdaUpdateWrapper生成SQL语句执行:

 1 @Override
 2 public boolean batchUpdate(KidsVO ids) {
 3         LambdaUpdateWrapper<> wrapper = Wrappers.lambdaUpdate();
 4         wrapper.in(::getId, ids.getIds());
 5 
 6         DataDO dto = new DataDO();
 7         dto.setDelFlag(1);
 8 
 9         return update(dto, wrapper);
10 }

4、调用:

我这里使用PostMan模拟调用,参数以json串的方式传递,示例如下:

1 {
2     "ids":  [8, 9, 10]
3 }

 

posted on 2020-04-23 16:01  小夏coding  阅读(584)  评论(0编辑  收藏  举报

导航