前言:
今天看官们对“java更新文件和修改文件”大体比较关注,各位老铁们都需要知道一些“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 { // 更新操作 }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。