我有两个线程。一个是从数据库中提取数据,另一个是显示带有中止按钮的进度条。如果我按下中止按钮,则应该取消由另一个线程执行的查询。
我知道如何从命令提示符下杀死它;但是,如果你们中有人知道如何从 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/