1. resultMap의 정의와 목적
MyBatis는 기본적으로 DB 컬럼명과 자바 필드명이 같으면 자동으로 매핑해 줍니다. 하지만 컬럼명과 필드명이 다르거나, 매핑 방식을 세밀하게 제어해야 할 때 resultMap을 사용합니다.
- 아이디(id): 이 매핑 설정의 고유한 이름입니다. (쿼리문에서
resultMap="MachineMap"으로 참조)
- 타입(type): 쿼리 결과를 담을 자바 클래스의 경로입니다.
2. 코드 상세 분석
작성하신 코드를 한 줄씩 뜯어보면 다음과 같습니다.
<id property="IdxNo" column="IdxNo"/>
- 역할: 테이블의 기본키(Primary Key) 컬럼을 매핑합니다.
- 특징: MyBatis가 객체를 식별할 때 사용하며, 성능 최적화에 도움을 줍니다.
- 해석: DB의
IdxNo 컬럼 값을 자바 객체의 IdxNo 필드에 넣습니다.
<result property="machineId" column="machineId"/>
- 역할: 일반 컬럼을 매핑합니다.
- 해석: DB의
machineId 컬럼 값을 자바 객체의 machineId 필드에 넣습니다.
<result property="gameId" column="gameId"/>
- 역할: 일반 컬럼을 매핑합니다.
- 해석: DB의
gameId 컬럼 값을 자바 객체의 gameId 필드에 넣습니다.
3. 이 코드를 사용하는 실제 쿼리 예시
XML 매퍼 내에서 다음과 같이 호출하여 사용하게 됩니다.