2012-04-03 16 views
1
Statement stmt=conn.createStatement(); //1 
Statement stmt2=conn.createStatement(); //2 
ResultSet resultSet1=stmt.executeQuery("-----"); //3 

while(resultSet1.next()) { //4 
    ResultSet resultSet2 = stmt.executeQuery("-----"); //5 
} 

Will Line Number 5 Ursache alle Änderungen in resultSet1 (entsprechend deklariert 3) .... Da pro meine Beobachtung, resultSet1 hatte nach der Ausführung auf der Leitung geändert 5.ResultSet Abfrage

Bitte erläutern Sie, ob meine Beobachtung ist richtig oder falsch.

Antwort

1

Von Statement javadoc:

kann standardmäßig nur ein ResultSet Objekt pro Statement-Objekt zur gleichen Zeit geöffnet sein. Wenn daher das Lesen eines ResultSet-Objekts mit dem Lesen eines anderen ResultSet-Objekts verschachtelt ist, muss jedes Objekt von verschiedenen Statement-Objekten generiert worden sein. Alle Ausführungsmethoden in der Anweisungsschnittstelle schließen implizit das aktuelle ResultSet-Objekt einer Anweisung, wenn eine offene vorhanden ist.