반응형

MyBatis 속성

 

<bind>

 

개념


외부에서 전달된 파라미터를 이용하여 변수 생성하는 엘리먼트

동적 쿼리 변수를 생성할 때 사용한다.

 

 

조건


MyBatis version 3.2.3 이상

 

 

문법


동적 쿼리문 안에 작성

<select | insert | update | delete>

<bind name="지정할 변수이름" value="파라미터 값+부가 옵션"/>

</select | insert | update | delete>

name 속성 : 자기가 지정할 변수 이름

value 속성 : 받아오는 파라미터 값 + 추가 문법 (이때 문법은 OGNL(Object Graph Navigation Language) 표현식을 사용한다.)

 

 

실전 예시 1. Like 문 문법

Parameter 01 : id

Parameter 02 : subject

<select id="getTest" resultType="board">

SELECT * FROM board

<bind name="ids" value="'%'+id+'%'"/>
<bind name="subjects" value="'%'+subject+'%'"/>
<where>
<if test="id != null"> AND id like #{ids}</if>
<if test="subject != null"> AND subject like #{subjects} </if>
</where>

</select>

 

이런식으로 value 속성에 받아온 파라미터를 작성하고 추가 문법을 덧붙이면 됩니다.

 

실제 실행된 쿼리

SELECT * FROM board WHERE id like '%2%' AND subject like '%test%'

실전 예시 2. Map 사용 문법

<bind name="a" value="hMap.get('a'.toString())"/>

<bind name="b" value="hMap.get('b'.toString())"/>

<bind name="c" value="hMap.get('c'.toString())"/>

실전 예시 3. 메서드(Method) 사용 문법

 

bind 사용 전

<select id="selectPerson" parameterType="String" resultType="hashmap">
  SELECT * FROM PERSON WHERE FIRST_NAME like #{name.upperCase() + '%'} 
</select> 

bind 사용 후

<select id="selectPerson" parameterType="String" resultType="hashmap">
  <bind name="nameStartsWith" value="_parameter.getName().upperCase() + '%'"/>
  SELECT * FROM PERSON WHERE FIRST_NAME like #{nameStartsWith} 
</select>
반응형

+ Recent posts