IT 소스/MyBatis
[MyBatis] <trim> - 특정 조건에 따라 부분적으로 SQL 코드를 생략
한량이야기
2024. 2. 5. 13:20
반응형
안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
<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'를 방지하고
쿼리를 더 동적으로 만들어줍니다.
반응형