我正在使用JDBC Microsoft SQL SERVER DRIVER,当我设置查询超时时,驱动程序会返回查询结果,直到那一刻。
但是驱动程序没有抛出 SQLTimeoutException (参见javadoc:https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#setQueryTimeout(int)) 我怎么解决这个问题?我需要知道何时发生超时...
示例代码,我们可以看到问题:
try {
Connection con = ConnectionFactory.getNewConnection();
Statement st = con.createStatement();
st.setQueryTimeout(10);
ResultSet rs = st.executeQuery(" ... some query takes long time ... ");
while (rs.next()) {
// ...
// actions with result
// ...
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
我相信查询会返回部分结果。因为可以滚动结果集并打印结果...