2014-04-26 7 views
-1

새로운 쿼리를 실행하기 위해 다시 사용하기 전에 결과 집합의 내용을 지우고 싶지만 (기본 데이터베이스에는 아무 것도 일어나지 않아야합니다)?JDBC : 다시 사용하기 전에 결과 집합의 내용을 지우는 방법?

다른 쿼리에서 데이터를 다시 검색하기 위해 동일한 결과 집합을 사용할 수 있도록 데이터를 삭제하는 방법이 있습니까 (기본 데이터베이스에는 아무 것도하지 않습니다.).

API documentation에서 빠른 검색 나에게 같은 방법으로 일을 삭제하면deleteRow()실제로뿐만 아니라 데이터베이스에서 데이터를 삭제한다는 생각을했다.결과 집합을 다시 설정/새로 고침/지우려면 다른 쿼리의 결과를 얻기 위해 다시 사용할 때 이전 쿼리가 아닌 해당 쿼리의 데이터 만 포함해야합니다. 우리는 새로운 결과 집합을 만들 수 -이 :

또는 은 자동으로 우리가 그들을 검색 한하면 그 내용 자체 (ResultSet.getInt() 같은 방법을 통해, ResultSet.getString() 등)

EDIT를 제거하지 같은 방법으로 각 쿼리를 실행합니까?

+1

결과 집합 개체에 더 이상 값이 필요하지 않으면 이전 쿼리를 덮어 쓰게 될 다음 쿼리에 대해 동일한 결과 집합 개체를 사용할 수 있습니다. – Jay

+2

결과 집합을 사용하여 쿼리를 실행하지 마십시오. 결과 집합은 쿼리 실행의 결과입니다. 결과 집합과 관련된 자원을 해제하려면 [javadoc] (http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html)에서 설명한대로 결과 집합을 닫아야합니다. # close % 28 % 29). –

+0

@Jay ArrayList에서 값을 검색하고 첫 번째 쿼리에서 세 개의 값이 반환되고 두 번째 쿼리에서 두 개의 값이 반환되었다고 가정 해 보겠습니다. 첫 번째 두 값은 겹쳐 쓰여질 것입니다. 그러나 첫 번째 쿼리에서 나온 ResultSet의 세 번째 값은 여전히 ​​존재할 것입니까? – Solace

답변

2

은이 같은 쿼리를 실행하고 싶은 말은 수 있습니다 :

ResultSet rs = statement.executeQuery("select * from people"); 
당신은이 같은과 결과의 반복 것

: 다음

while(result.next()) { 
    // ... get column values from this record 
} 

방금 ​​실행 변수 rs을 재사용 다른 검색어 :

rs = statement2.executeQuery("select * from cars"); 

Here은 ResultSet 작업에 대한 자습서입니다.