gpt4 book ai didi

java - JDBC 上的保存点

转载 作者:行者123 更新时间:2023-11-30 06:18:09 26 4
gpt4 key购买 nike

我有一个 JDBC 代码,其中存在多个 Savepoints;像这样:

1st insert statement
2nd insert statement
savepoint = conn.setSavepoint("S1");
1st insert statement
2nd update statement
savepoint = conn.setSavepoint("S2");
1st delete statement
2nd delete statement
savepoint = conn.setSavepoint("S3");
1st insert statement
2nd delete statement
savepoint = conn.setSavepoint("S4");

现在在 catch block 中,我正在捕获异常并检查 Savepoint 是否为 null;如果是,则回滚整个连接,否则回滚到 Savepoint。但是我无法理解我应该回滚到哪个 Savepoint

如果我将所有保存点名称更改为“S1”,可以吗?在那种情况下,我将如何理解 Savepoint 之前有多少工作正常?

请告知如何理解直到哪些Savepoint工作被正确执行?

最佳答案

会将此视为多项交易。因此,您可以使用多个 try/catch block 来处理这个问题。您似乎也在覆盖保存点对象,因此回滚是不可行的。

更多信息。JDBC也支持设置保存点,然后回滚到指定的保存点。以下方法可用于定义保存点。

SavePoint savePoint1 = connection.setSavePoint();

使用带参数的回滚调用将事务回滚到已定义的保存点。

connection.rollback(savePoint1);

引用。 https://www.stackstalk.com/2014/08/jdbc-handling-transactions.html

关于java - JDBC 上的保存点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com