当前位置: 首页 > 面试题库 >

如何中止正在运行的JDBC事务?

林英武
2023-03-14
问题内容

有没有办法过早中止交易?说,我已经向数据库发送了一个命令,该命令运行五分钟,四分钟后,我想中止它。

JDBC是否定义了一种向数据库发送“停止此连接上正在执行的操作”信号的方法?


问题答案:

如james所提到的,Statement.cancel()将取消正在运行的Statement的执行(选择,更新等)。JDBC文档特别指出,Statement.cancel()可安全地从另一个线程运行,甚至建议在超时线程中调用它。

取消该语句后,您仍然会停留在回滚事务的工作上。即
记录为安全地从另一个线程运行。该Connection.rollback()应该在主线程中完成所有其他JDBC调用发生。您可以在取消的Statement.execute
…()调用完成后使用JDBCException(由于cancel)来处理该问题。



 类似资料:
  • 问题内容: 我正在尝试制作一个简单的计时器,该计时器在指定的秒数后发出提示音。我设法使其正常工作,但是TimerTask在蜂鸣声后继续运行。现在我停止执行吗?这是我的代码: 问题答案: 您需要通过调用以下方法来取消计时器 这将取消任务,因此可以执行以下操作:

  • 问题内容: 我有一个Jenkinsfile或Jenkins管道,该管道创建一个新图像并从该图像中启动一个容器。第一次运作良好。但是在随后的运行中,我希望停止并删除先前的容器。我的Jenkinsfile如下: “ docker stop container”阶段失败。那是因为我不知道获取容器并停止它的正确API。谢谢。 问题答案: 就像在此Jenkinsfile中一样,您可以改用命令。 这样,您可以

  • 问题内容: 我从Linux Shell 连接到。我时不时地运行一个太大的查询。它可以打印,我已经知道这不是我的意思。我想停止查询。 击中(几次)会完全杀死并把我带回外壳,因此我必须重新连接。 是否可以在不杀死自己的情况下停止查询? 问题答案:

  • 问题内容: 如何以编程方式停止正在运行的mysql查询? 我面临的问题是查询是使用用户提供的数据构造的,并且偶尔可能需要很长时间才能执行(大型表15-3000万行)。我想为用户提供一个cancel- option,但不知道如何停止当前正在执行的mysql-query。 该应用程序是Java applet- servlet:用户在applet中指定条件,该条件将传递给servlet,在servlet

  • 我正在创建一个BLE应用程序,需要连续启动和停止扫描预定义的时间间隔。我实现它的方式是使用两个Runnable,它们相互调用,如下所示: 我正在尝试开始连续扫描并在单击按钮时暂停。开始按钮可以启动过程,但我无法停止扫描。 如果在停止间隔期间按下停止按钮,扫描将停止。但是,如果在扫描可运行状态下按stop按钮,则会删除stopScan可运行状态下的回调,同时保持扫描可运行状态持续运行。我需要的是两个

  • spring和mybatis是否可以中断正在执行的mybatis数据库事务? 例子: 我有一个将数千条记录插入oracle SQL数据库的应用程序。这大约需要5分钟。如果用户在插入记录时按下“停止”按钮,我希望停止数据库事务并回滚更改。 一旦数据库过程完成,我可以使用事务管理器回滚事务: 但我无法在事务运行时中断它。 在JDBC中,我会简单地做: 我试图在MyBatis中获得这份准备好的声明,但我