728x90
반응형
1. 기본 의미
resultSetType 속성은 MyBatis가 내부적으로 JDBC ResultSet을 생성할 때 커서를 어떻게 이동시킬지를 정의합니다.
- FORWARD_ONLY
- 커서를 앞으로만 이동할 수 있음
- 기본값이며, 성능이 가장 빠름
- 이전 행으로 돌아가거나 랜덤 접근이 불가
- 큰 데이터셋 조회 시 메모리 부담이 적음
- SCROLL_INSENSITIVE
- 커서를 앞뒤로 이동 가능
- ResultSet이 변경되어도 영향을 받지 않음
- 대형 데이터셋에서는 성능이 떨어질 수 있음
- SCROLL_SENSITIVE
- 커서를 앞뒤로 이동 가능
- DB에서 ResultSet이 변경되면 바로 반영됨
- 업데이트 실시간 반영이 필요한 경우 사용
2. 언제 쓰는가?
- 데이터가 많고, 단순히 한 방향으로만 읽어오는 경우 → FORWARD_ONLY 사용
- 특정 행으로 돌아가서 처리하거나 랜덤하게 접근해야 할 경우 → SCROLL_INSENSITIVE / SCROLL_SENSITIVE 사용
<select id="getAllUsers" resultType="User" resultSetType="FORWARD_ONLY">
SELECT * FROM users
</select>
- FORWARD_ONLY 커서를 사용하므로, 조회 후 한 번에 순차적으로 데이터를 처리함
- 메모리를 효율적으로 사용
728x90
반응형
'DB' 카테고리의 다른 글
| [DB][MyBatis][MySQL] MyBatis + MySQL에서 실제로 가능한 resultSetType (0) | 2025.10.22 |
|---|---|
| [DB][MyBatis] resultSetType 비교 그림 (0) | 2025.10.21 |
| [DB][MySQL] 버전확인하기 (0) | 2025.10.14 |
| [DB][Oracle] ALTER TABLE ... ADD 안에서 컬럼 정의와 동시에 COMMENT 를 지정하는 문법 (0) | 2025.09.19 |
| [DB][Oracle] 계산식 적을 때 Alias 사용하기 (0) | 2025.09.18 |