ResultSet查询

时间:2012-04-03 12:52:30

标签: java database java-ee

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

请解释我的观察是对还是错。

1 个答案:

答案 0 :(得分:1)

来自Statement javadoc

  

默认情况下,每个Statement对象只能同时打开一个ResultSet对象。因此,如果读取一个ResultSet对象与另一个ResultSet对象的读取交错,则每个ResultSet对象必须由不同的Statement对象生成。如果存在一个开放的对象,则Statement接口中的所有执行方法都会隐式关闭该语句的当前ResultSet对象。