Mapper XML 파일설정 (구조, 엘리먼트, 속성)

Mybatis

목록 보기
1/7

mapper

  • SQL Mapper XML (= mapper)는 SQL명령어들이 저장되는 SQL Mapper XML 파일
  • Mapper는 < mapper>를 루트 엘리먼트로 가지며, DTD 선언부와 SQL Mapping부로 나뉘어져있는 구조를 갖는다.



-> namespace를 이용해 유일한 SQL id를 만들어서 DAO 클래스에 참조할 때 위와같이 하면된다.

< select>

  • select 엘리먼트는 데이터를 조회하는 select 구문을 작성할 때 사용하며, parameterType과 resultType속성을 사용할 수 있다.

    1) id속성
  • < select id="">에 선언된 id속성은 필수속성으로, mapper 파일들 내에서 유일한 아이디를 등록해야한다.
  • 그래야 나중에 Dao 클래스에서 특정 아이디로 등록된 sql을 실행할 수 있다.
  • 이 id 속성과 관련해서 살펴볼 것이 루트엘리먼트인 mapper다.
  • < mapper> 엘리먼트 안에서 선언된 여러 아이디를 하나의 namespace로 묶을 수 있다.
  • 예를들어, 두 파일에 선언된 id인 getTotalCount는 namespace가 다르므로 다른 id로 처리될 수 있다.

2) parameterType 속성

  • mapper 파일에 등록된 SQL을 실행하려면 SQL 실행에 필요한 데이터를 외부로부터 받아야 한다.
    -> 이때 사용하는 속성이 parameterType 속성이다. parametertype은 일반적으로 기본형이나 VO형태 클래스를 사용한다.
  • 이때, mybatis 메인 설정파일 (sql-map-config.xml)에 등록된 < typeAlias> 의 alias를 사용하면 설정을 더 간결하게 처리할 수 있다.

3) resultType 속성

  • 검색관련 SQL구문이 실행되면 ResultSet이 리턴되며, Resultset에 저장된 검색결과를 어떤 자바 객체에 매핑할지 지정할 때 사용하는 속성이다.

  • resultType 속성은 당연히 쿼리 명령어가 등록되는 select 엘리먼트에서만 사용이 가능하다.

  • parameterType 속성과 달리 절대 생략할 수 없는 속성이다.

  • 뒤에나올 resultMap 속성으로 대체가 가능하다.

출처

profile
백엔드를 공부하고 있습니다.

0개의 댓글