[MyBatis][국비교육] Day 78

Ga02·2023년 5월 2일

국비교육

목록 보기
72/82

마이바티스 <resultMap> 태그
마이바티스 Mapper XML에서 사용할 수 있는 태그 중 하나
ReaultSet에서 데이터를 프로그램 쪽으로 가져올 때 결과값을 매핑하는 방법을 지정
DTO 클래스의 멤버필드와 다른 이름의 컬럼명을 매핑할 때 사용할 수 있음
join 쿼리의 결과와 같은 복잡한 SQL 코드의 결과집합(ResultSet)을 매핑할 때 사용할 수 있음
<id>태그, <result>태그를 <resultMap>태그의 자식 태그로 추가해서 사용
컬럼명과 멤버필드명이 같을 때에는 자동으로 매핑되므로 자식태그를 추가할 필요가 없음
<id>태그에는 PK 컬럼을 적용할 때 사용
<result>는 PK 컬럼 이외의 컬럼을 적용할 때 사용
<select> 태그의 resultMap 속성으로 <resultMap>태그의 id 속성값을 적용
resultType 속성에는 사용하면 안됨

<resultMap> 태그의 속성

  • type 속성
    매핑된 실제 DTO 클래스를 지정
    패키지를 포함한 풀네임으로 적용
  • id 속성
    생성될 resultMap의 이름을 지정
    주로 DTO 클래스의 이름을 사용
    풀네임에서 패키지를 제외한 이름을 많이 사용

<resultMap> 태그의 자식 태그

  • <id> 태그
    PK 컬럼을 지정할 때 사용
  • <result> 태그
    PK 컬럼이 아닌 컬럼을 지정할 때 사용
    두 태그 모두 column 속성으로 테이블 컬럼명, property 속성으로 DTO 멤버필드명을 적용
    PK컬럼도 <result> 태그로 적용할 수 있음

마이바티스 TypeAliases 태그
마이바티스 Configuration XML에 적용할 수 있는 태그
Mapper XML에서 사용할 수 있는 DTO 클래스의 별칭을 적용
parameterType, resultType 속성의 값으로 별칭을 사용할 수 있게 됨
DTO클래스의 풀네임(패키지 포함)이 너무 길 때 별칭으로 간략하게 바꿔 사용할 수 있음

적용방법 2가지
1. 클래스 단위로 적용하기
<typeAlias type="DTO클래스" alias="별칭" />
type 속성에 DTO 클래스의 풀네임을 적용
alias 속성에 사용할 별칭을 작성
2. 패키지 단위로 적용하기
<package name="패키지명" />
등록된 패키지가 내부의 모든 클래스에 별칭이 자동으로 적용됨
클래스의 이름을 별칭으로 적용
각 DTO클래스의 정의부분 앞에 @Alias("별칭")을 적용해 개별적으로 별칭을 다르게 적용할 수 있음

profile
IT꿈나무 댓츠미

0개의 댓글