반응형
안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
<resultMap> 태그는 쿼리 결과를 객체에 매핑하는 데 사용됩니다.
이 태그를 사용하면 데이터베이스에서 검색한 결과를
자바 객체로 변환하여 객체 간의 매핑을 자유롭게 정의할 수 있습니다.
1. <resultMap> 태그의 구문 및 사용법
<!-- <resultMap> 태그의 기본 구조 -->
<resultMap id="고유식별자" type="매핑할클래스">
<!-- 각 컬럼을 속성에 매핑하는 result 태그들 -->
<result column="데이터베이스의 컬럼" property="자바 객체의 속성"/>
.
.
.
</resultMap>
<resultMap> 태그의 주요 속성
속성명 | 속성 설명 |
id | resultMap의 고유 식별자로, 다른 쿼리에서 이를 참조할 때 사용됩니다. |
type | 결과를 매핑할 자바 객체의 클래스를 지정합니다. |
result |
각 컬럼을 자바 객체의 속성에 매핑하는 데 사용됩니다. column : 데이터베이스의 컬럼을 지정합니다. property : 자바 객체의 속성을 지정합니다. |
2. <resultMap> 태그의 예제
<!-- <resultMap>을 설정 -->
<resultMap id="userMap" type="User">
<result column="id" property="userId"/>
<result column="username" property="userName"/>
<result column="email" property="eMail"/>
</resultMap>
<!-- 위에서 정의한 resultMap을 호출 -->
<select id="getUserById" resultMap="userMap" parameterType="int">
SELECT * FROM Users WHERE id = #{userId}
</select>
위의 예시에서 사용된 resultMap 태그는
"userMap"이라는 고유 식별자를 가지고 있습니다.
이 resultMap은 자바 User 클래스에 매핑됩니다.
그리고 각 result 태그는 데이터베이스의 컬럼을
자바 User 클래스의 속성을 매핑합니다.
첫 번째 result 태그는 데이터베이스의 "id" 컬럼을
자바 User 클래스의 "userId" 속성에 매핑하므로
검색된 결과의 "id"의 값은 User 객체의 "userId" 속성에 할당됩니다.
두 번째 result 태그는 데이터베이스의 "username" 컬럼을
자바 User 클래스의 "userName" 속성에 매핑하므로
검색된 결과의 "username"의 값은 User 객체의 "userName" 속성에 할당됩니다.
세 번째 result 태그는 데이터베이스의 "email" 컬럼을
자바 User 클래스의 "eMail" 속성에 매핑하므로
검색된 결과의 "email"의 값은 User 객체의 "eMail" 속성에 할당됩니다.
반응형
'IT 소스 > MyBatis' 카테고리의 다른 글
[MyBatis] <commnet> - SQL 쿼리에 주석 추가 (0) | 2024.02.19 |
---|---|
[MyBatis] <selectKey> - 쿼리 실행 후 생성된 키 값을 가져오기 (1) | 2024.02.18 |
[MyBatis] <sql>, <include> - SQL 조각을 정의하여 재사용 (1) | 2024.02.16 |
[MyBatis] <bind> - 변수를 설정 및 사용하기 (0) | 2024.02.15 |
[MyBatis] <foreach> - 코드를 반복적으로 처리 (0) | 2024.02.08 |