안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
<bind> 태그는 특정 값을 변수에 할당하고
나중에 그 값을 다시 사용하는 용도로 활용됩니다.
주로 SQL 쿼리 내에서 변수를 초기화하거나 연산을 수행할 때 사용됩니다.
1. <bind> 태그의 구문 및 사용법
<!-- <bind> 태그의 기본 구조 -->
<bind name="변수명" value="값 또는 표현식" />
name: 변수의 이름을 지정합니다.
value: 변수에 할당할 값을 또는 수식을 지정합니다.
2. <bind> 태그의 예제
<!-- 사용자 상태가 'ACTIVE'를 검색하는 쿼리 -->
<select id="getUserList" resultType="User">
<bind name="status" value="'ACTIVE'" />
SELECT * FROM Users
WHERE status = #{status}
</select>
'status'라는 변수에 'ACTIVE'라는 값(문자열)을 할당합니다.
이 변수를 사용하여 사용자의 상태가 'ACTIVE'인 사용자 목록을 가져옵니다.
<!-- 사용자 연봉을 검색하는 쿼리 -->
<select id="getUserList" resultType="User">
<bind name="minSalary" value="1000" />
<bind name="maxSalary" value="5000" />
SELECT * FROM Employees
WHERE salary BETWEEN #{minSalary} AND #{maxSalary}
</select>
'minSalary'와 'maxSalary'라는 변수에 각각 1000과 5000이라는 값을 할당합니다.
이 변수를 사용하여 연봉이 1000에서 5000 사이인 직원들을 선택합니다.
<!-- 사용자의 등급을 설정하는 쿼리 -->
<select id="getUserList" resultType="User">
<bind name="age" value="25" />
<bind name="usersLevel" value="IF(${age} >= 18, '일반회원', '미성년자')" />
SELECT * FROM Users
WHERE age = ${age} AND usersLevel = #{usersLevel}
</select>
'age' 변수에는 회원의 나이를 할당하고, 'usersLevel'변수에는
회원의 나이에 따라 일반 회원 또는 미성년자 회원으로 설정합니다.
이를 통해 해당 등급의 회원을 조회합니다.
위 예제에서 '#'을 사용하지 않고 '$'사용한 이유
'$'를 사용한 이유는 변수가 SQL 쿼리의 일부로써
직접 치환되어야 하기 때문입니다.
만약 변수가 동적인 값으로 처리되어야 한다면 '#'을 사용해야 합니다.
[MyBatis] 변수 #{} 와 ${} 의 차이점?
안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다. MyBatis에서의 substitution(대체) 공식은 동적 SQL을 작성할 때 사용되는 방법 중 하나로, SQL 쿼리 내에서 변수나 매개변수를 대체하는데 활용
hanryangitstory.tistory.com
'IT 소스 > MyBatis' 카테고리의 다른 글
[MyBatis] <selectKey> - 쿼리 실행 후 생성된 키 값을 가져오기 (1) | 2024.02.18 |
---|---|
[MyBatis] <sql>, <include> - SQL 조각을 정의하여 재사용 (1) | 2024.02.16 |
[MyBatis] <foreach> - 코드를 반복적으로 처리 (0) | 2024.02.08 |
[MyBatis] <set> - SET절에 동적으로 필드를 추가하거나 생략 (0) | 2024.02.07 |
[MyBatis] <trim> - 특정 조건에 따라 부분적으로 SQL 코드를 생략 (0) | 2024.02.05 |