728x90
<trim>
MyBatis의 trim 태그는 동적 SQL 문에서 불필요한 공백과 문자를 제거하고 조건에 따라 SQL 문을 조립하는 데 사용됩니다. <if> 태그를 보완하는 역할을 해줍니다.
<tirm>은 4가지의 속성을 가지고 있습니다.
prefix 속성
<trim>태그 내부 실행될 쿼리문 가장 앞에 붙여준다.
update
board
<trim prefix="SET">
username=#{username},
password=#{password}
</trim>
-- 최종 실행 쿼리문
update board
set
username=#{username},
password=#{password}
prefixOverrids 속성
<trim>태그 내부 실행될 쿼리문 가장 앞의 단어가 속성값에 설정해둔 문자와 동일할 경우 문자를 지웁니다.
select * from tbl_board where
<trim prefixOverrides="OR">
OR title = "Board Title" AND content = "Board Content"
</trim>
-- 최종 실행 쿼리문
select * from tbl_board where
title = "Board Title" AND content = "Board Content"
suffix 속성
<trim>태그 내부 실행될 쿼리문 가장 뒤에 붙여준다.
insert into
tbl_board
(
title,
content,
writer
)
values
<trim prefix="(" suffix=")">
'Board Title',
'Board Content',
'Board Writer'
</trim>
-- 최종 실행 쿼리문
insert into
tbl_board
(
title,
content,
writer
)
values
(
'Board Title',
'Board Content',
'Board Writer'
)
suffixOverrides
<trim> 태그 내부 실행될 쿼리문 가장 뒤의 단어가 속성값에 설정해둔 문자와 동일한 경우 문자를 지웁니다.
select * from tbl_board where
<trim suffixOverrides="AND">
title = 'Board Title' AND content = 'Board Content' AND
</trim>
--최종 실행 쿼리문
select * from tbl_board
where
title = 'Board Title'
AND
content = 'Board Content'
예제
맨 앞에 'SET' 붙이고 맨 끝에 있는 콤마(,)를 제거하기
<update id="updateUser">
UPDATE user
<trim prefix="SET" suffixOverrides=",">
<if test="username != null">username=#{username},</if>
<if test="password != null">password=#{password},</if>
<if test="email != null">email=#{email},</if>
<if test="bio != null">bio=#{bio},</if>
</trim>
WHERE id=#{id}
</update>
맨 앞에 있는 연산자를(AND 또는 OR) 제거하는 경우
<select id="selectInfo" resultType="user">
SELECT * FROM USER
<trim prefix="WHERE" prefixOverrides="AND |OR">
<if test="username != null">AND username=#{username}</if>
<if test="password != null">OR password=#{password}</if>
<if test="email != null">AND email=#{email}</if>
</trim>
</select>
출처 :
https://java119.tistory.com/103
https://kimvampa.tistory.com/179
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[MyBatis] Oracle Clob Select String 마이바티스 오라클 clob 출력 (0) | 2024.08.12 |
---|---|
[SQL] 오라클 삭제한 데이터 복구 (0) | 2024.07.30 |
[MyBatis] LIKE + % 문자열 검색 DBMS별 SQL문 (0) | 2024.04.24 |
[SQL] MariaDB 계정추가, 권한설정(외부접속허용), 권한부여 (0) | 2024.04.24 |
[MariaDB] MariaDB JDBC 설치와 연동확인 (0) | 2024.04.22 |