resultMap

조회되는 컬럼명과 Domain class의 setter method를 미리 연결할 때 사용하는 노드.
컬럼명과 setter method명이 다를 때에도 사용할 수 있다.
alias사용하는 것보다 속도가 빠르다.
select에서 resultMap속성을 사용하여 연결한다.

  • 형식
<resultMap id="아이디" type="Domain Class">
	<result property="setter명" column="컬럼명">
    
</resultMap>
  • 사용
    resultMap 속성을 사용.(resultType속성과 resultMap속성은 동시에 사용할 수 없다.)

테이블 명이나 컬럼명이 동적인 경우

PreparedStatement에서는 테이블명이나 컬럼명을 바인드변수로 처리할 수 없다.
MyBatis에서는 #{이름}을 사용하면 해당 위치가 bind변수로 대치된다.

<select>
	select 컬럼명
    from #{이름}
</select>
  • 해결방법
<select>
	select 컬럼명
    from ${이름}
</select>

동적쿼리

OGNL(Object Graph Navigation Language) : 태그를 사용하여 태그에 일치하는 언어에 문법을 찾아서 실행하는 언어

<if test="조건식">
조건을 처리하기 위해 node를 정의하고
=>
if(조건식){}
태그에 맞는 언어의 문법을 찾아서 실행

-- where, if, choose, foreac, set등을 지원

  • if) 비교할 때 사용
  • 문법
<if test="조건식">//getter method명 또는 입력값 연산자 비교값
  조건에 맞을 때 실행될 문장들,,,
  </if>
  
-관계연산자
  > : gt
  < : lt
  >= gte
  <= lte
  == eq
  != neq
-논리 연산자
 && - 기호 사용불가
 && 대신 => and 사용
 ||, or => 둘다 사용가능

0개의 댓글