您的位置 首页 java

Java常规操作新增,更新,删除

开发中,经常会遇到新增,删除,更新的操作。

比如要编辑一道题目的4个选项,前端一般是4个选项为一组提交,那么提交的数据操作有3种

序号

前端提交数据

后台数据库数据

操作

1

存在

不存在

新增数据

2

存在

存在

修改

3

不存在

存在

删除

一般小伙伴操作时图省事,不管3721,先把DB中的数据Delete,那就只需要考虑第一种新增情况啦,是不是很简单, 但如果设计中有用到自增ID,那么删除数据肯定会有问题。

所以,我们要考虑不删除数据的情况,也就是分别做3种情况的校验。

先考虑删除情况, 这里的删除也仅是 逻辑删除 ,再处理新增和修改操作就简单了。

直接上伪代码,

 // 常规操作:新增、更新、删除
List<Qa> old = find();
// 数据库数据,保存主键
List<Integer> originalEvent = old.stream().map(Qa::getId).collect(Collectors.toList());
// 前端传入的数据,也保存主键
List<Integer> paramEvent = dto.stream().map( DTO ::getId).collect(Collectors.toList());
// 删除操作,获取在DB,但不在DTO的数据
List<Integer> toDelete = originalEvent.stream().filter(item -> !paramEvent.contains(item)).collect(Collectors.toList());
List<Qa> toList = old.stream().filter(e -> toDelete.contains(e.getId())).collect(Collectors.toList());

 if  (!toList.isEmpty()) {
    //将待删除的记录更新为删除
    for (Qa qa : toList) {
        qa.setDeleteFlag( Boolean .TRUE);
    }
    qaDao.save(toList);
}

// 遍历前端提交的数据, DB存在则更新,不存在则新增
for (QaDTO dto : Dto) {
    Qa qa = qaDao.getById(dto.getId());
    if (qa == null) {
        // 新增操作

    } else {
      // 更新操作      
    }
}  

文章来源:智云一二三科技

文章标题:Java常规操作新增,更新,删除

文章地址:https://www.zhihuclub.com/175148.shtml

关于作者: 智云科技

热门文章

网站地图