반응형

출처:

http://hanuli7.tistory.com/31

http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html


ResultSet 객체는 자바의 JDBC에서  select SQL문의 결과를 담는 객체이다.

그리고 Prestatement, Statement 객체는 SQL 쿼리의 틀을 담는 객체이다.

차이점이라면 Statement가 SQL 쿼리 틀을 생성하면서 값을 지정한다면,

Prestatement는 미리 생성해두고 값은 나중에 지정하는 방식이다.


작업을 하다보니 이미 보여준 ResultSet 객체를 다시 사용해야 했다.

마침 beforeFirst()라는 함수도 있어서 이 함수를 사용을 할려고 했는데 다음 오류가 나왔다.


java.sql.SQLException: 전방향 전용 결과 집합에 부적합한 작업이 수행되었습니다


이유가 뭔가 하고 살펴봤는데,

ResultSet 객체에 저런 함수는 있으나 이를 사용하기 위해선 초기화 할 때 옵션을 지정해줘야 했다.


Statement stmt = null;
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
ResultSet.CONCUR_UPDATABLE);
각 옵션의 의미는 다음과 같다.


1. TYPE_SCROLL_INSENSITIVE
ResultSet 객체가 스크롤이 가능하게 하나 데이터가 바뀌는 것에는 덜 민감하다.


2. CONCUR_UPDATABLE

ResultSet 객체가 수정될 수 있음을 의미하는 동시성 모드를 나타낸다.


이를 지정하고 나니 beforeFirst() 등의 함수를 사용할 수 있었다.


반응형
Posted by 애콜라이트
l

free counters