使用jdbc进行多次查询

时间:2013-09-09 05:39:06

标签: java mysql jdbc

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

  

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);
}

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

我想你想用rs2,小心点。