java - 在java中使用mysql回滚事务

标签 java mysql database jdbc rollback

我正在向三个表中插入数据,即

Transaction
TransactionEntry
Payment

首先我在Transaction 中插入数据,然后获取Transaction ID 然后在TransactionEntry 中插入数据,在此插入之后在>支付

假设在前两个表中,数据插入成功。然后服务器崩溃。

我们如何回滚所有条目?我们可以通过编程方式控制它还是数据库有默认功能来控制这种情况?

如何实现一致性和完整性?

java中哪个framwork可以控制这种情况?

MySQL Java EE

最佳答案

您需要在工作单元完成后禁用自动提交和提交(或在失败时回滚)。

这应该是这样的:

Connection con = ...; //set earlier
con.setAutoCommit(false);
...
try {
  //insert here
  ...
  con.commit();
} catch (Exception e) {
  con.rollback();
  // other exception handling
}

关于java - 在java中使用mysql回滚事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171347/

相关文章:

java - 使用Eclipse在JAVA中连接SQL Server,错误: ClassNotFoundException

java - Eclipse/Java 中的重构 : Apply "Extract Method" (Alt+Shift+M) afterwards

java - 测量 Kafka Streams 中的处理吞吐量

php - MySql 使用现有表中的列和来自另一个表的不同查找创建新表

c# - 从内存中加载数据库文件

java - org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker 循环引用 Spring Boot 2.1.3

java - 使用 KeyListener 使用箭头键在 JPanel 中移动矩形

c# - 如何使用 Java 使用 SOAP Web 服务?

MySQL 组日期填充缺失日期

mysql - 如何在数据库中存储已付款和未付款的订单?