我有一个java应用程序,它从sql 2008数据库中读取记录(b读取的记录数是可配置的)。 并处理它们,这是在无限循环中完成的,只有在手动停止应用程序时才会停止。
我面临的问题是当我收到Read Time out错误时应用程序停止从数据库中提取记录。 我猜这是因为网络波动。
从db读取的代码是在try catch block.so中编写的。当错误发生时,它会被记录但也会停止。 我不知道如何处理这种情况,并使应用程序连续运行,尽管有错误。 请让我知道如何处理错误,以便我的应用程序继续运行。
答案 0 :(得分:0)
在阅读时,您应该将信息存储在您停止的位置,并在无法继续后再次设置连接。
像这样:
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 */ }
}
}