java - 从另一个线程取消 MySQL 查询执行

标签 java mysql multithreading kill

我有两个线程。一个是从数据库中提取数据,另一个是显示带有中止按钮的进度条。如果我按下中止按钮,则应该取消由另一个线程执行的查询。

我知道如何从命令提示符下杀死它;但是,如果你们中有人知道如何从 Java 中取消查询,那将对我有所帮助。

最佳答案

这里有一些建议,可能会有所帮助:

您可以从另一个线程调用 Statement.cancel 来停止该语句

来自 javadoc http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#cancel()

Cancels this Statement object if both the DBMS and driver support aborting an SQL statement. This method can be used by one thread to cancel a statement that is being executed by another thread.

mysql驱动从5.0版本开始支持Statement.cancel

编辑

您还可以使用 Statement.setQueryTimeout(int seconds)

指定查询可以花费的最长时间

http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#setQueryTimeout(int)

关于java - 从另一个线程取消 MySQL 查询执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467223/

相关文章:

c - 停止单个线程

java - ListView 单元格变得比它们包含的节点更大

java - 为什么我的 Eclipse 编辑器没有显示错误,但是当我尝试运行该文件时,它显示 "cannot be resolved to a type"错误?

php - 对结果进行排序 mysql/php

javascript - 使用基于id的Angular JS合并数组中的多个对象

c++ - 生成 C++ 进程的线程转储

java - 保存 Mockito 发现的信息

java - Maven 项目无法识别某些 Artifact

mysql 如果不存在

java - 多线程快速排序比预期慢很多