Java 如何解决耗尽的ResultSet问题。?

Java 如何解决耗尽的ResultSet问题。?,java,database,oracle10g,resultset,Java,Database,Oracle10g,Resultset,我正在使用JAVA与Oracle10g合作,我正在尝试编写以下代码,但它一直显示“耗尽的结果集”。。有人知道如何获得正确的输出吗?任何与此相关的帮助都将不胜感激 ResultSet rs = stmt.executeQuery("select * from ATTENDANTS"); ResultSet rs2 = stmt.executeQuery("select * from ATTENDANCE"); String insert = ("INSERT INTO ATTENDANTS (

我正在使用JAVA与Oracle10g合作,我正在尝试编写以下代码,但它一直显示“耗尽的结果集”。。有人知道如何获得正确的输出吗?任何与此相关的帮助都将不胜感激

ResultSet rs = stmt.executeQuery("select * from ATTENDANTS");
ResultSet rs2 = stmt.executeQuery("select * from ATTENDANCE"); 
String insert = ("INSERT INTO ATTENDANTS ( Attendant_Name, Attendant_Age, Attendant_Contact_No, Attendant_Department_Name, REGISTRATION_NUM) VALUES('" + naam + "','" + umar + "','" + number + "', '" + deprt + "' , '" + registration + "')");
String insert2 = ("INSERT INTO ATTENDANCE ( Attendant_Name, Attendant_Age, Attendant_Contact_No, Attendant_Department_Name, REGISTRATION_NUM) VALUES('" + naam + "','" + umar + "','" + number + "', '" + deprt + "' , '" + registration + "')");
//ResultSetMetaData rsmd = rs.getMetaData();
//boolean colname = rsmd.equals(rs.getString(1));
while(rs.next() || rs2.next()){
   int a = naam.compareTo(rs.getString(1));
   int b = naam.compareTo(rs2.getString(1));
   int c = registration.compareTo(rs.getString(5));
   int d = registration.compareTo(rs2.getString(7));
        if((naam.equals(rs.getString(1)) && name.equals(rs2.getString(1))) || (registration.equals(rs.getString(5)) && registration.equals(rs2.getString(7)))){
            System.out.println("Record Already Exist");
            JOptionPane.showMessageDialog(null, "Name already exists in Record");
            //faceFrame.repaint();
            System.out.println("Already EXISTS");
        }
        //else if((a == 0 && c == 0) || (b == 0 && d == 0)){
        if((a == 0 && c == 0) || (b == 0 && d == 0)){
            stmt.executeQuery(insert);
            stmt.executeQuery(insert2);
            System.out.println("INSERTION DONE");
        }
       //else
       //System.out.println("Insertion Unsuccessfull");
    }
}

首先,您知道这两个查询将返回相同数量的结果吗?如果没有,那么,
rs.next()| | rs2.next()
就没有多大意义——如果任何一个结果集都没有行,那么尝试获取数据就没有意义。您的查询没有排序依据,因此很可能无法将一个查询的第n个结果与另一个查询的第n个结果进行比较。您的
insert
语句在进入循环之前也是固定的,这似乎不太可能是正确的。另外,实际上,您应该使用一条insert语句而不是编写Java。不要在评论中发布代码。第二,在两个表之间做笛卡尔积。因此,如果每个表有1000行,查询将返回100万行(1000000)。这似乎不太可能是你想要的。您的INSERT语句似乎毫无意义——一次只能插入一个表(我想您可以编写一个
INSERT all
。@JustinCave感谢您指出这些内容。。我已经重新整理了代码,现在它开始工作了……首先,您知道这两个查询将返回相同数量的结果吗?如果没有,那么,
rs.next()| | rs2.next()
就没有多大意义——如果任何一个结果集都没有行,那么尝试获取数据就没有意义。您的查询没有排序依据,因此很可能无法将一个查询的第n个结果与另一个查询的第n个结果进行比较。您的
insert
语句在进入循环之前也是固定的,这似乎不太可能是正确的。另外,实际上,您应该使用一条insert语句而不是编写Java。不要在评论中发布代码。第二,在两个表之间做笛卡尔积。因此,如果每个表有1000行,查询将返回100万行(1000000)。这似乎不太可能是你想要的。您的INSERT语句似乎毫无意义——一次只能插入一个表(我想您可以编写一个
INSERT all
。@JustinCave感谢您指出这些内容。。我已经重新安排了我的代码,现在它正在工作。。。