Statement stmt=conn.createStatement(); //1
Statement stmt2=conn.createStatement(); //2
ResultSet resultSet1=stmt.executeQuery("-----"); //3
while(resultSet1.next()) { //4
ResultSet resultSet2 = stmt.executeQuery("-----"); //5
}
第5行会导致resultSet1
中的任何更改(在第3行中声明)....根据我的观察,{5}在第5行执行后更改了resultSet1
。
请解释我的观察是对还是错。
答案 0 :(得分:1)
默认情况下,每个Statement对象只能同时打开一个ResultSet对象。因此,如果读取一个ResultSet对象与另一个ResultSet对象的读取交错,则每个ResultSet对象必须由不同的Statement对象生成。如果存在一个开放的对象,则Statement接口中的所有执行方法都会隐式关闭该语句的当前ResultSet对象。