-2

我想使用来自同一个数据库的两个查询,但出现错误:

java.sql.SQLException:结果集结束后

我该如何避免这个问题?请注意,每个表都没有相同的行号。

代码:

try {
    Dbconnection NewConnect = new Dbconnection();
    Dbconnection NewConnect2 = new Dbconnection();
    Connection con = NewConnect.MakeConnect();
    Connection con2 = NewConnect2.MakeConnect();
    Statement stmt = con.createStatement();
    Statement stmt2 = con2.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * from class");
    ResultSet rs2 = stmt2.executeQuery("SELECT * from intervals");
    while (rs.next()) {
        clasess.add(rs.getString(2));
    }
    while (rs2.next()) {
        intervals.add(rs.getString(2));
    }
} catch (Exception ex) {
    System.out.println(ex);
}
4

2 回答 2

3

在您的第二个while循环中,您正在调用rs.getString而不是rs2.getString.

如果您首先使用更有效的设置,则可以避免这种情况;在绝对最低限度,您在rs2第一个循环期间不必要地保持光标打开。我看不出您的数据库连接之间的配置有任何差异,因此只需使用一个Connection,然后重用Statementand变量,在循环ResultSet之间替换它们。while

于 2013-09-09T05:42:30.840 回答
0

异常来自代码 interval.add(rs.getString(2)); 你不应该使用 rs.getString(2)。rs 的结果集关闭了与数据库的连接。

我想你想使用 rs2,小心点。

于 2013-09-09T05:51:46.420 回答