我们在互联网上浏览了几个博客,建议使用 Statement.close()方法。
我们的场景:我们开发了RESTful服务。我们通过API调用后面的JDBC框架执行SQL查询。当API请求落在我们的RESTful服务器上时,在场景后面,我们从我们维护的连接池中获取JDBC连接,并且在同一连接中,我们遵循执行Query的常规JDBC步骤。 e.g。
Connection connection;
Statement statement;
ResultSet resultSet;
try{
connection = connectionPool.getConnection();
statement = (Statement) connection.createStatement();
resultSet = statement.executeQuery(queryString);
catch(SQLException){
// do something
}
finally{
resultSet.close();
statement.close();
connection.close();
}
很少有查询需要时间来获得响应。
我们的要求:如果在一个HTTP RESTful服务中执行的查询耗费了相当长的时间,我们希望提供另一个API,使用该API可以终止长时间运行的查询,因此,后端数据存储区以及REST服务器上的资源即连接将是免费的。
我们正在寻找一种与向允许的用户公开提供Cancel(QueryID)API完全相同的方法。在另一个API调用中取消查询的持久化语句实例是正确的方法吗?