반응형
안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
<trim> 태그는 시작과 끝 부분의
공백이나 다른 문자를 제거하는 데 사용됩니다.
주로 <where>, <set>, <foreach>와 함께 사용되어
동적인 SQL을 생성할 때 유용합니다.
1. <trim> 태그의 구문 및 사용법
<!-- <trim> 태그의 기본 구조 -->
<trim prefix="문자열" suffix="문자열" prefixOverrides="문자열" suffixOverrides="문자열">
<!-- 내용 -->
</trim>
prefix : 태그 내용의 앞에 추가할 문자열을 정의합니다.
suffix : 태그 내용의 뒤에 추가할 문자열을 정의합니다.
prefixOverrides : 태그 내용 중에서 특정 문자열로 시작하는 부분을 제거합니다.
suffixOverrides : 태그 내용 중에서 특정 문자열로 끝나는 부분을 제거합니다.
2. <trim> 태그의 예제
<!-- <trim> 태그 생성 예제. -->
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<trim prefix="WHERE" prefixOverrides="AND">
<if test="username != null and username != ''">
AND username = #{username}
</if>
<if test="age != null">
AND age = #{age}
</if>
</trim>
</select>
어떤 조건에도 해당되지 않는다면 아래와 같은 SQL이 만들어질 것입니다.
SELECT * FROM Users
두 번째 조건만 만족한다면 아래와 같은 SQL이 만들어질 것입니다.
SELECT * FROM users
WHERE
age = '20'
'prefix'의 속성으로 'WHERE'절이 추가되고,
'prefixOverrides'의 속성으로 처음 나오는
'AND' 문자열이 제거됩니다.
<trim> 태그는 WHERE 절 내에서
각 조건을 추가할 때 불필요한 'AND'를 방지하고
쿼리를 더 동적으로 만들어줍니다.
반응형
'IT 소스 > MyBatis' 카테고리의 다른 글
[MyBatis] <foreach> - 코드를 반복적으로 처리 (0) | 2024.02.08 |
---|---|
[MyBatis] <set> - SET절에 동적으로 필드를 추가하거나 생략 (0) | 2024.02.07 |
[MyBatis] <where> - 'AND'나 'OR'와 같은 연산자를 자동으로 처리 (0) | 2024.02.04 |
[MyBatis] <choose>, <when>, <otherwise> - 조건구문 (0) | 2024.02.03 |
[MyBatis] <if> - 조건을 만족하면 SQL 코드를 생성 (0) | 2024.02.02 |