10 개의 레코드가 있고 네 번째 ResultSet Value에 있다고 가정합니다. 다섯 번째 ResultSet의 값 하나를 취하여 네 번째 Resultset으로 다시 되돌려 놓아야하는 상황이 발생합니다. Java에서 가능합니까?
"스크롤 가능한"ResulSet
인스턴스가 있어야 결과 집합을 스크롤 할 수 있습니다. 이전 결과 집합을 업데이트해야하는 경우 스크롤 가능하고 업데이트 가능한 결과 집합이 필요합니다 (마지막 단락에서는 업데이트 가능한 결과 집합에 대해 설명합니다). 일반적으로 ResultSet
은 TYPE_FORWARD_ONLY
이고 next()
방법을 사용하여 정방향으로 만 스크롤 할 수 있습니다.
당신은 앞뒤로
ResultSet
을 이동
absolute()
및
previous()
같은 다른 방법을 호출하는 형태
TYPE_SCROLL_INSENSITIVE
또는
TYPE_SCROLL_SENSITIVE
의
ResultSet
인스턴스를 생성해야합니다. 앞서 언급 한 바와 같이 기본 유형은
TYPE_FORWARD_ONLY
같이 스크롤
ResultSet
만들기
는
의 Statement
또는 PreparedStatement
개체에 의해 반환 ResultSet
의 유형을 지정해야합니다. 어떻게 그렇게 할 보여주는 스 니펫은 다음과 같습니다 :
PreparedStatement pStmt = Connection.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = pStmt.executeQuery();
...
// You can now invoke rs.previous(), rs.absolute(n) etc. to move back and forth.
당신은에 읽을 할 것입니다 방법에 고유 한 Connection.createStatement
, Connection.prepareStatement
및 Connection.prepareCall
방법에서의 ResultSet의 유형입니다.
ResultSet
의 내용을 수정하고 읽을뿐만 아니라 변경하려면 "업데이트 가능"ResultSets를 만들어야합니다. ResultSet 동시성 유형을 CONCUR_UPDATABLE
으로 지정하면 쉽게 완료 할 수 있습니다.그런 다음 updateXXX
방법 중 하나를 호출하고 기본 데이터 소스를 업데이트 할 updateRow
방법을 따를 수 있습니다.
아니, 불행하게도 그렇지 않다. 데이터를 두 번에 걸쳐 처리해야합니다. 첫 번째에는 모든 항목을 쓰고 두 번째 항목에는 항목을 처리하십시오. – blubb
당신은 배열로 결과 집합 변환 자유롭게 – marioosh
@ 사이먼, @marioosh, 왜'resultSet.previous'를 사용할 수 있습니까? – Nivas