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 속성으로 대체가 가능하다.
출처