s2sh的用户同步修改数据的问题

sling2007 2010-09-08 01:25:53
如果两个客户端同时请求了
业务逻辑中的某个方法
这个方法被spring配置了事务
比如:
public void modifyCard(int cardid){
.....
dao.update(cardid);
.........

}

如果两个用户同时请求了这个方法
而用户1调用 modifyCard(100)
用户2调用modifyCard(200)

如何防止脏数据的产生呢?

是不是要给这个方法加synchronized呢,还是s2sh内部有解决机制之类的?
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
keven_2008 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sling2007 的回复:]
用Spring配置事务管理的方法,具有事务的提交和回滚功能。


但我问的是两个都正确的操作同时进行怎么办?
两个用户的更改都没有问题,
只是同时执行的话,可能会引起两个update一起操作数据库,
所以这里要不要加同步呢?

网上看spring关于同步的问题,没有搞清楚,所以大家还是来解答解答
[/Quote]
最终的数据更新是放在数据库服务端的,当一个update操作在服务器执行时,默认是会将这个表锁住,另一个update操作必须等到这个操作完成后,才进行下一次update。

spring中,可以自己事务的隔离机制,脏读、幻读、不可重复读都可以得到解决,当然,要牺牲性能。
yousite1 2010-09-13
  • 打赏
  • 举报
回复
通过spring设置事务传播特性,他会帮你解决这些问题了,不用我们操心。
sling2007 2010-09-10
  • 打赏
  • 举报
回复
用Spring配置事务管理的方法,具有事务的提交和回滚功能。


但我问的是两个都正确的操作同时进行怎么办?
两个用户的更改都没有问题,
只是同时执行的话,可能会引起两个update一起操作数据库,
所以这里要不要加同步呢?

网上看spring关于同步的问题,没有搞清楚,所以大家还是来解答解答
天天都在码字 2010-09-09
  • 打赏
  • 举报
回复
spring里有事物处理机制的,只需配置好事务管理bean(可以采用声明式事务管理),就可以不用理会事务了。
liuwenjunssh 2010-09-09
  • 打赏
  • 举报
回复
在你这个方法上面配置相应的事务传播特性,如果你采用注解,可以直接在方法上面写,如果你使用xml配置的话,把这个方法名称单独拿出来,在配置事务的时候为它单独配置事务隔离级别
howsun_zh 2010-09-08
  • 打赏
  • 举报
回复
Spring事务有粒度设置,并且有同步解决机制。
sling2007 2010-09-08
  • 打赏
  • 举报
回复
两个用户的请求同时到来,同时调用到这个业务逻辑方法
为什么用户1先执行完毕?
wo383337880 2010-09-08
  • 打赏
  • 举报
回复
这个用不着同步吧,用户1永远比用户2先执行完毕,各更新各的,不碍事

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧