有两个执行线程,一个是通过 JDBC 连接并执行繁重查询的线程,如下所示:
Statement stmtData = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rsData = stmtData.executeQuery("SELECT * from hugeTable");
第二个是启动第一个提到的线程并且如果用户请求当然取消它,假设在 DBMS 执行查询的过程中可能需要很长时间。
我尝试在第二个线程中调用第一个线程的 interrupt() 方法,希望它会在第一个线程中抛出 InterruptedException,但它没有。
那么如何快速干净地取消查询的执行呢?