1

我有一个 java 应用程序,它从 sql 2008 数据库中读取记录(要读取的记录数是可配置的)。并处理它们,这是在无限循环中完成的,只有在手动停止应用程序时才会停止。

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

从数据库读取的代码写在 try catch 块中。因此,当错误发生时,它会被记录下来,但也会停止。尽管出现错误,我不知道如何处理这种情况并使应用程序持续运行。请让我知道如何处理该错误以使我的应用程序继续运行。

4

1 回答 1

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 */ }
    }
}
于 2013-09-23T12:56:41.173 回答