mybatis에서 리턴타입을 정하는 태그는 두가지가 있다. resultMap 과 resultType. 두 가지의 차이점은 무엇일까?
resultType은 작성한 타입에 맞는 클래스에 매핑이 자동으로 이루어진다.
Dto의 경우 DB칼럼명과 Dto의 변수명이 일치해야 제대로 매핑이 된다.
또한 따로 설정을 하지않아도 select결과의 행이 여러줄이면 List형식으로 반환된다.
<select id="findById"
parameterType="String"
resultType="Dto의.위치.UserDto">
select * from User where id= #{id};
</select>
resultMap은 사용자가 xml에 정의한 규칙대로 매핑이 이루어진다.
<resultMap id="MyUserDto" type="Dto의.위치.UserDto" >
<result property="userNo" column="userNo"/>
<result property="id" column="id"/>
<result property="phone" column="phone"/>
<result property="statusNo" column="statusNo"/>
</resultMap>
<select id="findById"
parameterType="String"
resultMap="MyUserDto">
select * from User where id= #{id};
</select>