https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
ResultSet의 타입은 커서의 이동가능성에 대해 결정함. 모든 JDBC 드라이버가 모든 타입을 지원하지는 않음. DatabaseMetaData.supportsResultSetType 를 이용하여 지원하는 타입 확인가능
TYPE_FORWARD_ONLY: 스크롤이 불가능한 타입. 오직 앞으로(forward)만 이동할수 있음. ResultSet에 포함된 행(row)는 데이터베이스에 따라 달라짐. 즉, 쿼리가 실행될때 만족되는 행을 가져올지, row가 검색될때 행을 가져올지 DB구현에 따름.TYPE_SCROLL_INSENSITIVE: 스크롤이 가능한 타입. 앞/뒤로 탐색이 가능함. 행 변화에 민감하지 않음 (즉, 업데이트를 반영하지 않음)TYPE_SCROLL_SENSITIVE 스크롤이 가능한 타입. 앞/뒤로 탐색이 가능함. 행 변화에 민감함 (즉, 업데이트를 반영함)ResultSet의 concurrency는 업데이트 기능성을 지원하는지 결정함. 모든 JDBC 드라이버가 모든 동시성 타입을 지원하지는 않음
DatabaseMetaData.supportsResultSetConcurrency 를 이용하여 지원하는 동시성 타입 확인 가능
CONCUR_READ_ONLY : ResultSet 인터페이스를 사용하여 변경이 불가능함CONCUR_UPDATABLE: ResultSet 인터페이스를 사용하여 변경이 가능함Connection.commit은 현재 트렌젝션 동안 생성된 ResultSet을 닫을 수 있다. 그러나 경우에 따라서 이는 원치 않는 동작일수 있다. 그래서 ResultSet은 holdability로 커밋이 호출되고 ResultSet을 어떻게 다룰지 제공한다. (모든 JDBC 드라이버가 지원하는 것은 아님)
HOLD_CURSORS_OVER_COMMIT: 커밋이 호출된 이후에도 ResultSet을 닫지 않는다.CLOSE_CURSORS_AT_COMMIT : 커밋이 호출된 이후에 ResultSet을 닫는다.