Dan*_*ean 1 java mysql database jdbc data-integrity
我有一个MySql数据库实例和一个Account表维护一个Balance字段.我有多个Java应用程序,每个都使用Jdbc连接到数据库,可能会增加或减少Balance字段的值.如何确保读取,计算和更新Balance值以及此过程是单独发生的,并且"了解"可能正在执行相同操作的任何其他Java进程?
简单的答案是使用事务:http: //dev.mysql.com/doc/refman/5.0/en/commit.html
但是,在您描述的情况下,我更倾向于不将帐户的余额存储为表中的列,而是通过将与该帐户相关的交易的值相加来计算它.它对您提出的完整性问题的敏感程度要低得多,而且您不太可能遇到模糊的锁定方案.