【发布时间】:2018-01-02 16:15:04
【问题描述】:
Java API 文档中提到 Statement 接口有 setQueryTimeOut 方法。我确实将它与 PreparedStatement 一起使用。 现在不幸的是,我无法确认它确实有效。 我已将其设置为 1s,如下所示:
pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
pstmt.setQueryTimeout(1);
resultSet = pstmt.executeQuery();
查询很简单 根据年龄从视图中选择查询。 但 Db 响应变得更好,查询的执行在 500 毫秒内完成。如何故意延迟查询的执行,以便捕获 setQueryTimeOut 方法抛出的 SQLException?
【问题讨论】:
-
执行耗时较长的查询,通过延迟数据包的网络代理连接等?
-
Statement.setQueryTimeout()不用于故意延迟查询执行;相反,它的目的是指定一个超时值,之后查询执行将被中止(默认为无超时)。 为什么你想让执行变慢? -
没错。我想测试相同简单查询的超时。我想看看超时后抛出的异常。
-
@MarkRotteveel 在给出一个非常复杂的查询后它确实起作用了。我能够看到异常。有什么方法可以看到一个简单的查询?
-
使用很短的超时时间,或者使用延迟数据包的网络代理。
标签: java jdbc oracle11g timeout