[JDBC] 쿼리 후에 ResultSet 에 데이터가 있는지 확인하는 방법
외부 DB와 연동하는 코드에서 ResultSet에 데이터가 있는지 여부 아래와 같이 확인하였다.
ResultSet rs = null;
if(rs.next()){
rs.previous()
//조회 된 데이터를 DB에 저장
}
MySQL에서 데이터를 불러올 때는 문제가 없었지만 MSSQL에서 커서는
전방향 전용 결과 집합에 부적합한 작업이 수행되었습니다. 라는 에러가 발생하였다.
이는 ResultSet 기본설정이 TYPE_FORWARD_ONLY 로 되어있기 때문이다.
아래와 같이 상수 두개를 선언해 주어 에러가 발생하지 않도록 조치하였다.
조치 방법은 2가지 이다.
1. 기본설정 변경
PreparedStatement pstmt = dbConnFactory.getConnection().prepareStatement(connectorManager.getCollectorConfig().getQuery(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
2. 메서드 사용
rs.isBeforeFirst(); 조회 된 데이터가 없으면 false 를 반환한다.
ResultSet rs = null;
if(rs.next()){
rs.previous()
//조회 된 데이터를 DB에 저장
}
MySQL에서 데이터를 불러올 때는 문제가 없었지만 MSSQL에서 커서는
전방향 전용 결과 집합에 부적합한 작업이 수행되었습니다. 라는 에러가 발생하였다.
이는 ResultSet 기본설정이 TYPE_FORWARD_ONLY 로 되어있기 때문이다.
아래와 같이 상수 두개를 선언해 주어 에러가 발생하지 않도록 조치하였다.
조치 방법은 2가지 이다.
1. 기본설정 변경
PreparedStatement pstmt = dbConnFactory.getConnection().prepareStatement(connectorManager.getCollectorConfig().getQuery(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
2. 메서드 사용
rs.isBeforeFirst(); 조회 된 데이터가 없으면 false 를 반환한다.
댓글
댓글 쓰기