반응형
안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
<set> 태그는 UPDATE 쿼리를 생성할 때 사용됩니다.
이 태그는 SET 절을 동적으로 생성하여 데이터베이스
테이블의 열 값을 업데이트하는 데 사용됩니다.
1. <set> 태그의 구문 및 사용법
<!-- <set> 태그의 기본 구조 -->
<update id="updateUser" parameterType="User">
UPDATE users
<set>
<!-- 업데이트할 열과 값을 정의 -->
</set>
WHERE id = #{id}
</update>
<set> 태그 내부에는 업데이트할 열과 값을 지정하는 부분이 들어갑니다.
2. <set> 태그의 예제
<!-- 사용자 정보 업데이트 쿼리 -->
<update id="updateUser" parameterType="User">
UPDATE users
<set>
<if test="username != null">
username = #{username},
</if>
<if test="password != null">
password = #{password},
</if>
<if test="email != null">
email = #{email},
</if>
</set>
WHERE id = #{id}
</update>
여기서 <set> 태그는 동적으로 'SET' 키워드를 붙이면서
각 열의 값이 null이 아닌 경우에만 해당 열을 업데이트하고
필요 없는 '콤마'를 자동으로 제거합니다.
만약 모든 조건이 'null'이 아니면 아래와 같은 SQL을 생성할 것입니다.
UPDATE users
SET
username = 'codemen',
password = '1q2w3e4r',
email = 'codemen@codemen.com'
WHERE id = '1'
<set> 태그를 <trim> 태그로 처리한다면 아래와 같을 것입니다.
<!-- 사용자 정보 업데이트 쿼리 -->
<update id="updateUser" parameterType="User">
UPDATE users
<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>
</trim>
WHERE id = #{id}
</update>
이 경우 접두사 'SET'는 추가하고
접미사 '콤마(,)'는 삭제합니다.
반응형
'IT 소스 > MyBatis' 카테고리의 다른 글
[MyBatis] <bind> - 변수를 설정 및 사용하기 (0) | 2024.02.15 |
---|---|
[MyBatis] <foreach> - 코드를 반복적으로 처리 (0) | 2024.02.08 |
[MyBatis] <trim> - 특정 조건에 따라 부분적으로 SQL 코드를 생략 (0) | 2024.02.05 |
[MyBatis] <where> - 'AND'나 'OR'와 같은 연산자를 자동으로 처리 (0) | 2024.02.04 |
[MyBatis] <choose>, <when>, <otherwise> - 조건구문 (0) | 2024.02.03 |