小小的大脑子 2022-04-11 13:27 采纳率: 71.3%
浏览 39
已结题

在座的各位朋友,能帮讲解一下这段代码

在座的各位朋友,能帮讲解一下这段代码吗
主要不明白是if 语句,修改为什么要size()判段

img

  • 写回答

2条回答 默认 最新

  • BCS-点心 2022-04-11 13:59
    关注

    1.开始判断了工具类编码这个字段的值是否存在,猜测更新数据时,要保证工具类编码的值是唯一的,但这个并没有在数据库中做唯一校验,所以放在了代码里判断
    2.先查询更新的数据中,工具类编码是否存在,返回是集合,通过判断集合元素个数大于1,返回错误结果
    3.如果返回的集合中只有一个元素,继续判断,要更新的编码是否和已存在的编码相同
    4.最后都没有问题了,更新数据

    不过,感觉挺奇怪的
    1.更新数据的时候,拿主键ID查到这条数据去更新就好了
    2.如果为了保证某个字段的值不是重复的,在数据库中加唯一索引更简单,在代码里可以用这个字段值去数据库搜索,如果出现1条以上的数据,那就说明有重复的,如果只出现1条,不能确实是重复的,可能正好是要更新的这条数据,这里就是让人觉得别扭的地方,原代码中也是这样做的
    3.如果这个字段的值是要保持唯一的,那在数据库里是不可能出现2条相同的数据的,那判断size()>1会有结果吗?
    即使当前要更新的数据,比如库里的字段值为1,要更新的字段值为2,那也不会在库中找到>1条的数据,就算重复了,也只是找到1条,所以觉得判断size()>1没有必要
    4.直接拿工具类编码字段去表中查数据,如果查到一条数据,拿这条数据的id跟要更新的数据的id比对,如果相同没有问题,就是要更新的这条数据,如果不同,就是有重复的,不能更新,返回错误信息,可以debug过程看看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重