在 SQL Developer 中,单击“取消任务”按钮会立即停止执行查询。我必须在我们的项目中实现相同的功能。
我使用 BC4J 作为 ORM 工具来执行查询。我必须取消一个名为 thorugh view objects 的搜索查询执行,它调用几个数据库函数/过程来获得结果。
我尝试过使用viewObject.cancelQuery();
,但没有任何效果;查询一直执行到最后。
我通过 BC4J 处理的 JDBC 连接池进行连接。
在 SQL Developer 中,单击“取消任务”按钮会立即停止执行查询。我必须在我们的项目中实现相同的功能。
我使用 BC4J 作为 ORM 工具来执行查询。我必须取消一个名为 thorugh view objects 的搜索查询执行,它调用几个数据库函数/过程来获得结果。
我尝试过使用viewObject.cancelQuery();
,但没有任何效果;查询一直执行到最后。
我通过 BC4J 处理的 JDBC 连接池进行连接。
我的建议是
Runnable
实现
cancel()
方法
cancelQuery
。cancel
您的查询<query thread>.interrupt()
使用;将此事件发送给您的可运行查询 为此,您需要将对查询线程的引用存储在<query thread>
. 活动的 IO 操作有时会被此信号中断!InterruptedException
并且SQLException
在run()
:如果这些异常被捕获回滚事务(如果一个为只读查询启动)Thread.currentThread().isInterrupted()
在每个语句之后检查,cancel()
如果结果为真cancel()
您的查询可运行Swing 和 Eclipse RCP 中都有支持这种设计的辅助类。