在Java API文档中提到Statement接口具有setQueryTimeOut方法。我确实在PreparedStatement中使用它。 现在不幸的是,我无法确认它确实有效。 我把它设置为1s,这是最小的,如下所示:
pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
pstmt.setQueryTimeout(1);
resultSet = pstmt.executeQuery();
查询很简单根据年龄从视图中选择查询。 但是Db响应变得更好并且查询的执行在500ms内完成。如何故意延迟查询的执行,以便捕获将由setQueryTimeOut方法抛出的SQLException?
答案 0 :(得分:0)
您可以通过TimeUnit类暂停,java.util.concurrent package
。
TimeUnit.SECONDS.sleep(1);
睡一秒或
TimeUnit.MINUTES.sleep(1);
睡一会儿。
以这种方式实施
pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
TimeUnit.MINUTES.sleep(1);
resultSet = pstmt.executeQuery();
在精细记录睡眠方法抛出InterruptedException
异常,所以你必须处理它。
如果您不想要 TimeUnit
类的开销,只需在代码中以下面的方式调用Thead.sleep(long)。
pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
Thread.sleep(60);
resultSet = pstmt.executeQuery();
但是你必须要照顾InterruptedException
睡眠方法抛出的东西。