티스토리 뷰

MyBatis를 사용하다 보면 간혹 헷갈리는 부분이다. resultType, resultMap을 상황에 따라 적절하게 사용해야 한다. 우선 MyBatis 공식 사이트에서 정의하고 있는 부분을 살펴보자.

resultType - 이 구문에 의해 리턴되는 기대타입의 패키지 경로를 포함한 전체 클래스명이나 별칭, collection인 경우 collection 타입 자체가 아닌 collection이 포함된 타입이 될 수 있다.

resultMap - 외부 resultMap의 참조명 결과맵은 MyBatis의 가장 강력한 기능이다.

이렇게 설명하고 있다. 확 와닿지 않는 문구이지 않는가? 다시 정리해보자.

 

resultType - 클래스명 전체 또는 Alias를 입력해야 한다. VO, DTO등의 객체를 담을 수 있는 클래스의 경로를 명시하여 사용하면 된다. 자동매핑되기 때문에 편리하지만 일부 제한이 있다.

<select id="selectUserInfo" resultType="com.xxx.xxx.xxx.UserVO">
...
</select>

<select id="selectUserCount" resultType="int">
...
</select>

resultMap - 개발자가 직접 POJO 클래스에 매핑하며, 번거롭지만 제한없이 사용가능하다.

<resultMap id="userMap" type="com.xxx.xxx.xxx.UserVO">
    <result property="userId" column="USER_ID">
    <result property="userName" column="USER_NAME">
    ....
</resultMap>

<select id="selectUserInfo" resultMap="userMap">
...
</select>

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함