日期:2014-05-17  浏览次数:20679 次

数据库表数据同步问题,大虾请进
情景是这样的:
  收银员A和B同时在web页上进行查询操作,对同一张表中的的同一条数据进行查询操作。然后A加了1元(原来是2元),现在成了3元,然后保存在表中,而B在上面加了2元,现在他保存,由于他查询时看到的是2元,所以现在他保存后金额是4元,按照正常的计算,应该是A加了1元后变成3元,然后B加了2元,现在应该是5元才对。

  问题是这样:我们一般采用哪些方法来避免这种情况?目前我知道两种:1.增加一个版本字段,查询时得到该字段,修改后增加1,以后其他的修改需要进行比较,如果不同,则保存失败     2.依赖数据库本身的机制,对将要修改的数据进行锁定

    不知道还有其他办法没有


------解决方案--------------------
C/S的话
非常简单
用lock就行

B/S结构,如果是J2EE
那用EJB或是Hibernate吧
让它来管理数据同步