반응형
2024.03.06 - [Java/mybatis] - [mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때)
[mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때)
resultType 속성을 사용하면 resultType 속성값으로 설정된 클래스로 객체를 생성하여 검색행의 컬럼값을 같은 이름의 객체 필드값으로 자동 저장하여 제공 - 자동 매핑 문제점 : 검색행의 컬럼명과 re
sukis.tistory.com
위 글에서 resultMap의 다른 속성들은 설명해놨음.
거기서 보던 예제로 계속 살펴보면, resultMap을 사용해 수동 매핑해줬었음⬇️
<!--autoMapping 안쓰고 수동매핑-->
<resultMap type="MyUser" id="myUserResultMap">
<id column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
</resultMap>
<select id="selectUserList" resultMap="myUserResultMap">
select user_id, user_name from myuser order by user_id
</select>
그런데 어차피 mybatis-config.xml 파일(XML 환경설정파일)에 setting엘리먼트를 사용하여 mapUnderscoreToCamelCase
를 true로 설정해놨음. 그래서 자동으로 컬럼명이 CamelCase로 변경되어 컬럼명과 같아짐.
그렇다면 굳이 수동매핑을 안해도 됨!
<!--autoMapping써서 자동매핑-->
<resultMap type="MyUser" id="myUserResultMap" autoMapping="true">
</resultMap>
<select id="selectUserList" resultMap="myUserResultMap">
select user_id, user_name from myuser order by user_id
</select>
결과는 위에 수동매핑한거랑 똑같지만, resultMap 안에 하위 엘리먼트를 삭제할 수 있어서 코드가 더 간결해짐!!
반응형
'Backend > mybatis' 카테고리의 다른 글
[mybatis]resultMap 하위 엘리먼트 - constructor 엘리먼트 (0) | 2024.03.07 |
---|---|
[mybatis]selectKey 엘리먼트(insert 엘리먼트의 하위 엘리먼트) (0) | 2024.03.07 |
[mybatis]수동 매핑 & resultMap 엘리먼트(컬럼명과 DTO파일 필드명 다를 때) (0) | 2024.03.06 |
[mybatis]매퍼XML 파일 - sql 엘리먼트과 include 엘리먼트 (0) | 2024.03.06 |
[mybatis]매퍼 바인딩(Mapper Binding) (0) | 2024.03.06 |