Statement.setQueryTimeout不会抛出异常(SQL SERVER)

时间:2017-05-10 14:41:13

标签: java sql-server jdbc timeout

我正在使用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();
}

我相信查询会返回部分结果。因为可以滚动结果集并打印结果...

0 个答案:

没有答案