有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否可以使用iBATIS中止长时间运行的查询?

我有一个GUI,允许用户运行长时间运行的查询。有时,用户会后悔运行这些查询,并希望取消它们。查询是使用iBATIS在Oracle数据库上运行的,我知道java。sql。语句接口定义了一个cancel方法,该方法可能由驱动程序实现,也可能不由驱动程序实现。所以我的问题是,是否可以使用iBATIS调用此方法来取消查询(给定正确的驱动程序),或者是否有其他方法中止正在进行的长时间运行的查询


共 (1) 个答案

  1. # 1 楼答案

    嗯,
    我想,一旦服务器进入数据库服务器,取消它实际上是一个“特定于数据库供应商”的问题
    如果您的要求是取消查询,
    当涉及到您的应用程序时
    (即,如果它到达Oracle DB服务器,并且在那里运行,您就可以了,只要您不会得到结果),请考虑使用具有取消方法的Future接口。br/> 您可以使用submit一个“Callable”来运行查询,它将返回一个类型正确的对象,该对象是一个实现
    如果需要中止-只需使用future对象的“cancel”方法。 您还可以使用“isCanceled”检查提交是否被取消,并在代码中进行适当处理