小小的大脑子 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日

悬赏问题

  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow