java - 交易问题

标签 java mysql jdbc transactions

我使用 Java 和 MySql 作为数据库。

我正在运行多个应用程序实例。我从数据库中选择一条记录,同时在获取后,我将其状态更新为“处理中”,这样其他实例就无法访问该记录。

但是发生的情况是实例运行得如此之快,以至于当一个实例正在访问一条记录时,另一个实例也在第一个实例对“处理中”进行更新之前访问同一条记录。我应该怎么做才能在其他实例访问它之前也进行更新?我在我的代码中使用了 conn.setTransactionIsolation(conn.TRANSACTION_READ_COMMITTED),但这也没有帮助。

提前致谢。

最佳答案

您需要一个select for update 类型的语句。

http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html

关于java - 交易问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953550/

相关文章:

java - 使用java中变量传递的名称创建一个模式

hadoop - 插入数据时配置单元语义异常

java - Spring boot 日志记录/Java 日志记录 - 显示配置/设置的工具

Java复制文件扭曲文件

java - Android 应用程序未显示在模拟器中

mysql - 使用elasticsearch索引mysql数据库

java - 插入时HIbernate语法sql错误

java - spring jdbc 优于 hibernate

mysql - 在 MySQL 中查找并替换字符串的一部分

apache-spark - spark 2.2 struct Streaming foreach writer jdbc sink 滞后