java - 处理由网络波动引起的读取超时

  显示原文与译文双语对照的内容
76 5

我是 Having,它从 sql 2008数据库读取记录( 可以读取的记录计数可以配置) 。 并且处理它们并在无限循环中完成,只在手动停止应用程序时停止。

在这里遇到的问题是,当我读取超时错误时应用程序停止从数据库获取记录。 我想这是因为网络的波动。

当出现错误时,在出现错误时读取从db读取的代码,但也停止了这里操作。 我不知道如何处理这种情况,并使应用程序在出现错误时持续运行。 请让我知道如何处理错误,以便我的应用程序继续运行。

时间: 原作者:

146 4

读取时应将信息存储在停止的位置,并在连接失败后重新设置连接。

就像这个:


boolean programRuns = true;//set this to false at the end

public void doMyStuff() {
 int myLastPosition = 0;
 while(programRuns) {
 try {
 Connection con =/* open your connection */
 String statement =/* your statement */+"WHERE id>" + myLastPosition;
 PreparedStatement pstmt =/* prepare your statement */
 while(true) {
 ResultSet rs = pstmt.executeQuery();
 myLastPosition = rs.getInt("id");
/* do whatever you want with the result */
 }
 } catch (Exception ex) {/* handle the exception */}
 }
}

原作者:
...