找出需要一些时间的情况,然后将其取消。如果最耗时的事情是rs.next()
循环,则可以执行以下操作:
while(rs.next()){
if (myVolatileBooleanSaysToStop) {
return; // or whatever
}
//do stuff
}
如果需要花费一些时间的是语句以及JDBC驱动程序/服务器支持Statement.cancel
,那么您可以将您的内容发布Statement
到第二个线程,该线程负责进行Statement.cancel
适当的调用。我不确定,但是我认为这会导致sqlException
驱动程序产生a ,然后您可以以某种方式将其标识为来自取消,并进行相应处理。