MyException - 我的异常网
当前位置:我的异常网» J2EE » 多人同时注册出现记录相同的有关问题

多人同时注册出现记录相同的有关问题

www.MyException.Cn  网友分享于:2015-08-26  浏览:5次
多人同时注册出现记录相同的问题
如果有多个人同时注册(同一个时间点。精确到秒),那么在这个时间点上的记录会出现相同的记录,在注册的Action有一个成员变量来接收JSP页面传递来的注册信息,但是在向数据库提交之前都已验证过该记录是否已存在,可是现在数据库中还是有相同的数据,这个有几方面原因,求大神相助!

------解决方案--------------------
后台注册的那个service的方法需要同步
------解决方案--------------------
你是指的ID相同吧。同一时间注册。你的ID取的当前时间所以导致ID相同吧。
你校验没用的原因应该是因为相同的数据是在你校验完以后加入的。
你可以在每个用户注册完成后。
让系统等待几毫秒再插下一个用户
Thread.sleep(20);
------解决方案--------------------
因为多线程情况下,先去判断然后再写可能会存在大家都去判断了当前不存在,然后就一起去写,所以就可能出现相同是数据
------解决方案--------------------
每次插入的时候 先把数据库的最新时间拿出来对比下 再插入
------解决方案--------------------
最好使用单例的方式
------解决方案--------------------
每次插入的时候 先把数据库的最新时间拿出来对比下 再插入
------解决方案--------------------
同时注册时最好这个方法是synchronized让后来的先排队。
------解决方案--------------------
什么叫做:相同的记录?哪些东西相同了?不能在数据库中设置 Unique Index 么?
------解决方案--------------------
1.提高时间精度
2.如果用时间精确到秒,不防在加个自增序列 然后用时间序列 + 该序列,就是你要插入的id。
------解决方案--------------------
你的验证,单线程情况下是可以的。
多线程情况下,是不起作用的。
应该是注册用户信息表的标识符会重复的问题。

给生成用户唯一标识符uuid加synchronized同步,这样uuid在多线程下是不会重复的。
------解决方案--------------------
要不楼主自己写一个主键生成的方法
调用自己的 主键生成方法
------解决方案--------------------
要不楼主自己写一个主键生成的方法
调用自己的 主键生成方法
------解决方案--------------------
如果你使用spring 时,会有这样的问题。spring 默认bean 配置是一个single ..也就是所有的请求都会便用这一个对象。你需要把这个改成 scope="prototype"
------解决方案--------------------
用数据库解决,唯一键,锁什么的
------解决方案--------------------
LZ说的重复应该是用户录入内容的重复了,比如A录入“中国银行”,B也同时录入“中国银行”,由于之前A、B都没保存,所以在前台检验时就通过,这时再提交到后台,就会出现重复了,虽然说两人的录入基本上是同时的,但服务器处理起来还是会有先后顺序的,建议在后台保存的时候也加一个验证做判断,在保存记录前先判断是否有重复的,如果有,就做异常处理或给用户提示。
------解决方案--------------------
最原始的方法是自己写一个随便号码生成,就像QQ一样
------解决方案--------------------
楼主最简单的方法是在表中增加这些字段的唯一性约束。即使当时前台校验都通过,但是实际插入数据库中时还是有先后顺序的,后插入的就会插入不成功。
------解决方案--------------------
我的解决方法是 本地生成PK, insert时一起插入进去,用的UUID. 

java.util.UUID
------解决方案--------------------
探讨

什么叫做:相同的记录?哪些东西相同了?不能在数据库中设置 Unique Index 么?

文章评论

聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Java程序员必看电影
Java程序员必看电影
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员和编码员之间的区别
程序员和编码员之间的区别
老程序员的下场
老程序员的下场
 程序员的样子
程序员的样子
代码女神横空出世
代码女神横空出世
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我的丈夫是个程序员
我的丈夫是个程序员
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我是如何打败拖延症的
我是如何打败拖延症的
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
编程语言是女人
编程语言是女人
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
每天工作4小时的程序员
每天工作4小时的程序员
总结2014中国互联网十大段子
总结2014中国互联网十大段子
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员应该关注的一些事儿
程序员应该关注的一些事儿
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
旅行,写作,编程
旅行,写作,编程
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
鲜为人知的编程真相
鲜为人知的编程真相
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
为什么程序员都是夜猫子
为什么程序员都是夜猫子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
那些争议最大的编程观点
那些争议最大的编程观点
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
中美印日四国程序员比较
中美印日四国程序员比较
程序员的鄙视链
程序员的鄙视链
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
如何成为一名黑客
如何成为一名黑客
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有