mybatis根据多个ID查询集合对象,并批量更新对象

1.需求描述

表单中有表单内容,以及多个附件,在提交表单的时需要把主表的内容保存起来,同时也要将主表的ID更新的附件表中
mybatis根据多个ID查询集合对象,并批量更新对象_第1张图片

2.解决方案

2.1表设计

mybatis根据多个ID查询集合对象,并批量更新对象_第2张图片

2.2 接口定义

@PostMapping("/getAlarmTypeList")
public RestResponse saveAlarmRepair(@RequestBody JSONObject jsonObject){
        ptwBusAlarmService.saveAlarmRepair(jsonObject);
        return RestResponse.success();
    }

2.3 业务层实现

public boolean saveAlarmRepair(JSONObject jsonObject) {
        PtwBusAlarmEntity alarmEntity = new PtwBusAlarmEntity();
        alarmEntity.setAlarmTypeId(jsonObject.getString("alarmTypeId"));
        alarmEntity.setQuestionDesc(jsonObject.getString("questionDesc"));
        this.save(alarmEntity);
        JSONArray fileIds = jsonObject.getJSONArray("photosIds");
        List list = sysOssDao.getSysOssByIds(fileIds);
        List listNew = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            SysOssEntity sysOssEntity = list.get(i);
            sysOssEntity.setMainId(alarmEntity.getId());
            listNew.add(sysOssEntity);
        }
        return sysOssService.updateBatchById(listNew);
    }

2.4 dao层实现

List getSysOssByIds(@Param("sysOssIds")JSONArray sysOssIds);

2.5 xml方法实现


3. 总结

3.1根据多个ID进行查询是需要注意

在这里插入图片描述

3.2使用mybatis的foreach进行循环

mybatis根据多个ID查询集合对象,并批量更新对象_第3张图片

3.3 采用苞米豆封装的批量更新方法

mybatis根据多个ID查询集合对象,并批量更新对象_第4张图片

参考:https://blog.csdn.net/qq_29072049/article/details/81384795

你可能感兴趣的:(sql)