博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新增 修改,对xx名字或者其他属性做校验判断是否存在
阅读量:6679 次
发布时间:2019-06-25

本文共 613 字,大约阅读时间需要 2 分钟。

需求描述:页面输入完xxName和xx编码,点击提交,根据两项内容做重复校验(就是看看数据库里有木有相同的)

解决思路:把这两个东西作为查询条件去查,查到有记录,提示已存在,就不执行新增或者修改操作。想着这个小功能,应该不费事,简简单单嘛,结果新增的时候还好说,没有记录的话就save了,有的话重新输入再save就行了,可是,当我给修改功能加校验的时候,发现就有问题了,完犊子,当然不能完犊子。

我分析了一下,修改功能,不仅仅有名字、编码这两项,还有比如说 部门吧,如果你修改的时候,仅仅修改了部门,那么名字,编码都没变,点提交的时候,就会根据名字和编码去查询,那一定能查到记录,还是自己的这条记录啊,因为现在的还没执行保存呢,仅仅是点了提交,触发了校验查询,但是这条自己的应该是可以修改的,为什么不能呢。

校验的关键部分就在这里,用id来做校验,获取查到的记录的id,和自己的id作比较(点击编辑,页面肯定有回显,弄个input隐藏域把id放进去),如果不相等,说明这个名字和编码已经有对应的对象了,就不能保存,重新输入,如果相等,说明查到的记录还是自己了,就可以执行update。

总结:主键id 是唯一的,可以作为判断依据,这里做校验出问题,就是自己的记录所影响,通过查到的id和自己的id比较,从而把自己排除。

转载于:https://www.cnblogs.com/xuchao0506/p/9605763.html

你可能感兴趣的文章
Attribute "XXX" has already been defined
查看>>
python中的@ 装饰器 闭包 切片式编程
查看>>
数据库库事务隔离级别是个什么玩意
查看>>
做大数据分析的怎么可以不会这个?
查看>>
从客户端(content1="<table> <tbody> ...")中检测到有潜在危险的 Request.Form 值
查看>>
VMware虚拟机网络模式的区别
查看>>
我的友情链接
查看>>
MySQL基础语句总结
查看>>
htmlcxx-0.85 mingw编译
查看>>
Linux安装Oracle 11g
查看>>
2006下半年程序员级试题答案
查看>>
redis命令中文手册
查看>>
XenApp 发布应用,访问比较慢
查看>>
CMMI三级的一些重点总结
查看>>
JavaScript语言基础知识点总结(思维导向图)
查看>>
我的友情链接
查看>>
*.hbm.xml文件——单表映射、双向多对一以及多对多的配置
查看>>
robocopy和计划任务并用实现文件服务器每天自动备份
查看>>
在老男孩教育学习的三个月
查看>>
Java GC 日志详解
查看>>