'iBATIS를 통한 SQL 실행'에 해당되는 글 1건

  1. 2012.06.15 iBATIS를 통한 SQL 실행

1. 개요

① SqlMap - SQL문 설정, Input Data, Output Data를 설정하는 xml 기반 설정 파일

· SqlMap 파일은 SqlMapConfig에 등록한다.

② SqlMapClient interface : SQL문 실행 메소드를 정의

· package : com.ibatis.sqlmap.client

· SqlMapClientBuilder를 통해 얻어 온다.

  

 - Sql Map에 SQL 문을 등록하고 프로그램에서는 SqlMapClient의 메소드를

이용해 등록한 쿼리를 실행 시킨다.

2. Sql Map

① SQL문 등록 태그

 

② 외부 Parameter, Result 매핑 설정

③ SQL문 생성 태그

 

3. Parameter mapping

① Sql Map에 쿼리 등록시 세가지 요소 설정 필요

- SQL문

- Parameter : Input Data

- Select문의 경우 Result : Output Data

② Parameter Mapping

- Parameter : SQL문에 넣을 값

- 인 라인 Parameter, 외부 Parameter 매핑 두가지 방식이 있다.

· 인라인 - 값과 값을 넣을 위치를 SQL 안에 설정

· 외부 parameter mmapping - SQL문에는 ?로 설정하고, 넣을 parameter 연결은

SQL문 밖에서 설정

- SqlMapClient의 메소드를 통해 받은 값과 SQL 문에 값이 들어갈 곳을

Mapping 한다.
- SQL문 내 mapping 방법

· #parameter name# - 인라인 파라미터

· $parameter name$ - 인라인 파라미터

- parameter name

- DTO(VO) : getter와 matching

- Map : key와 matching

· ? - 외부 파라미터 매칭

③ '#' 지시자로 인라인 parameter 사용

- ?로 바꾼 뒤 값을 치환한다. - PreparedStatement 형식

- 타입에 맞게 치환 처리 (String의 경우 ''처리)

- 값만 치환 가능

 

 

④ '$' 지시자로 인라인 parameter 사용

- 전달받은 값을 바로 치환한다. - copy & paste 개념

- String일 경우 ''로 감싸주어야 한다.

- 값 뿐만 아니라 키워드 등 쿼리문 무엇이든 치환 가능

 

4. Parameter 매핑 - 외부 매핑

① Parameter 매핑의 두가진 방안

- 인라인 매핑

· SqlMap Mapping문 내부에서 바로 기술함.

· 매핑이 복잡한 경우 명시적이지 못함.

- 외부 매핑

· 외부에서 정의됨

· 보다 명시적임

· 인라인 매핑과 외부 매핑은 같이 사용할 수 없다.

- ?와 매칭되어 값이 할당된다.

 

 

② 외부 Parameter 매핑

 

 - 외부 Parameter 매핑이 유용한 경우

· 인라인 Parameter 매핑이 잘 동작하지 않을 경우

· 성능을 향상시킬 경우

· 명시적 매핑을 할 경우

5. Result 매핑

① 명시적 Result 매핑

- <resultMap> : 하나의 resultClass에 대한 설정

· 속성 : id, class

- <result> : 하나의 property와 resultSet의 Column 매핑

- result태그

 

② Primitive result

- iBATIS는 primitive 형태의 결과를 허용하지 않음(int, long, double, ..)

- Wrapping된 형태의 타입을 리턴(Integer, Long, Double, ..)

 

  - JavaBean타입으로 Wrapping할 경우 primitive 형태의 결과를 얻을 수 있음

 

 ③ JavaBean과 Map Result의 장단점

Posted by 조은성
,