簡體   English   中英

如何故意延遲jdbc prepareStatement的executeQuery()?

[英]How to delay executeQuery() of jdbc preparedStatement intentionally?

Java API文檔中提到Statement接口具有setQueryTimeOut方法。 我確實將它與PreparedStatement一起使用。 現在不幸的是,我無法確認它確實在工作。 我將其設置為1s,這是最小值,如下所示:

pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
pstmt.setQueryTimeout(1);
resultSet = pstmt.executeQuery();

查詢很簡單根據年齡從視圖中選擇查詢。 但是Db響應變得更好,並且查詢的執行已在500毫秒內完成。 如何有意地延遲查詢的執行,以便捕獲由setQueryTimeOut方法拋出的SQLException?

您可以通過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();

值得注意的是,sleep方法會引發InterruptedException異常,因此您必須注意這一點。

同樣,如果您不想占用TimeUnit的開銷,則只需按照以下方式在代碼中調用Thead.sleep(long)。

pstmt = connection.prepareStatement(sqlQuery);
pstmt.setString(1, age);
Thread.sleep(60);
resultSet = pstmt.executeQuery();

但是同樣,您必須照顧睡眠方法拋出的InterruptedException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM