在座的各位朋友,能帮讲解一下这段代码吗
主要不明白是if 语句,修改为什么要size()判段
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无用
悬赏问题
- ¥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