데이터베이스를 사용하는 애플리케이션은 데이터베이스에서 데이터를 조회하고 그 결과를 개체에 담아 사용한다.
웹 애플리케이션이라면 결과 데이터를 화면에 노출하기 위해 jsp를 사용한다. 물론 다른형태의 애플리케이션이라면
웹페이지가 아니더라도 다른 형태로 그값을 노출하거나 다른시스템과 연계하기 위해 그값을 사용한다.
하나의 테이블을 대상으로 데이터를 가져오고, 그에 대응하는 모델클래스가 있거나 여러 개의 테이블을 대상으로
데이터를 가져오고, 한꺼번에 여러 개의 모델 클래스를 가져온 후 자바 객체에 값을 설정하기 위해 마이바티스는
결과 매핑이라는 기법을 제공한다.
그결과 매핑을 처리하기위해 매핑 구문을 정의할때처럼 XML 엘리먼트나 애노테이션을 사용할수있다.
결과매핑을 처리할때 좀더 부가적으로 편의성을 높이기 위해 저공하는 (mapUnderscoretoCamelCase) 설정도 있다.
데이터 베이스의 테이블 관계는 정규화와 반정규화를 통해 1:1이나 1:N 이된다.
한개의 테이블에 데이터를 조회하는 것처럼 관계가 없는 경우도 있다. 마이바티스의 결과 매핑은 칼럼명과 자바 모델
클래스의 필드명 혹은 setter 메소드가 설정하고자 하는 값과 일치하면 자동으로 값을 설정해준다.
하지만 칼럼명과 일치하지 않는다면 별도로 값을 설정하는 규칙을 정의해야만 정확히 값을 설정할수있다.
이렇게 일치하지않는 경우에 값을 설정해주기 위해 제공하는 XML 엘리먼트를 먼저 알아보자.
result Map : 결과 매핑을 사용하기 위한 가장 상위 앨리먼트다. 결과 매핑을 구분하기 위한 id속성과, 매핑하는 대상 클래스를
정의하는 type 속성을 사용한다.
id : 기본 키에 해당되는 값을 설정한다.
result : 기본 키가 아닌 나머지 칼럼에 대해 미핑한다.
constructor : setter 메소드나 리플렉션을 통해 값을 설정하지 않고 생성자를 통해 값을 설정할때 사용한다.
association : 1:1 관계를 처리한다.
collection : 1:N 관계를 처리한다.
discriminator : 매핑 과정에서 조건을 지정해서 값을 설정할때 사용한다.
'개발 > DB' 카테고리의 다른 글
마이바티스 스프링 설정 (0) | 2013.11.26 |
---|---|
마이바티스 라이브러리 (0) | 2013.11.26 |
SqlSessionFactory 객체 생성 (0) | 2013.10.29 |
괜찮은 ERD 프로그램 [eXERD] (0) | 2013.10.28 |
마이바티스(mybatis) 연동 모듈 (0) | 2013.10.23 |
댓글