Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中回滚一系列jdbc事务_Java_Oracle_Jdbc_Transactions_Java Transaction Service - Fatal编程技术网

如何在java中回滚一系列jdbc事务

如何在java中回滚一系列jdbc事务,java,oracle,jdbc,transactions,java-transaction-service,Java,Oracle,Jdbc,Transactions,Java Transaction Service,每次调用我的java类时都会有一定数量的记录(考虑1000条)。每次调用它时,它都需要将所有1000条记录插入表中。 现在,它被调用了三次(意味着它在三个事务中插入了3000个记录到数据库中)。现在,如果在第三个事务插入期间发生任何错误,它需要回滚所有事务插入。 是否有可能将所有三个事务都转换为单个事务(但代码定期接收1000条记录)。 请指导我实现这个场景 您需要一种方法来跟踪每个事务期间的所有插入,然后在调用回滚时让函数删除它们。在提交事务后,无法轻松回滚事务 如果它需要回滚所有三个事务,那

每次调用我的java类时都会有一定数量的记录(考虑1000条)。每次调用它时,它都需要将所有1000条记录插入表中。 现在,它被调用了三次(意味着它在三个事务中插入了3000个记录到数据库中)。现在,如果在第三个事务插入期间发生任何错误,它需要回滚所有事务插入。 是否有可能将所有三个事务都转换为单个事务(但代码定期接收1000条记录)。
请指导我实现这个场景

您需要一种方法来跟踪每个事务期间的所有插入,然后在调用回滚时让函数删除它们。在提交事务后,无法轻松回滚事务

如果它需要回滚所有三个事务,那么就没有三个事务。有一个事务。“回滚”是事务中的DB功能。一旦提交了事务,就没有自动回滚的方法。由您自行设计程序,使其能够提供该功能(通常这一点都不微不足道)。@Kayaman是否可以一次提交所有3000条记录?注意:我将定期收到1000条记录。@PrudhviB可能是。这取决于你的应用程序是否能够处理这样长的事务。也许你应该考虑一个设计,在其中使用一个接收数据的分级表,在成功接收了第三组数据之后,将它移到永久位置作为“提交”。(当出现“回滚”错误时,从暂存表中删除)。是否有可能将所有三个事务转换为单个事务?(但我将定期收到1000条记录,而不是一次收到1000条记录)。这样我就可以一次提交所有的插入。可能,这取决于你的代码是如何设置的。听起来你在程序结束之前不会提交你的事务,这似乎不是一个好主意,但是如果你想更新你的问题以添加你的代码,那么我可以有一个更好的主意。