SpringBoot
[MyBatis] mybatis02 Dynamic SQL
N'Che
2020. 5. 26. 14:52
Dynamic SQL
쿼리 내에 조건문을 사용하여 중복되는 쿼리들을 최소화할 수 있다.
trim 엘리먼트
여러 구문 중 하나만 실행할 수 있다.
update sql문
UPDATE tb_member
SET
m_id='',
m_pw='',
m_level='',
m_name='',
m_email=''
WHERE m_id=''
trim 엘리먼트 사용시
<update id="modifyMember" parameterType="Member">
UPDATE tb_member
<trim prefix="SET" suffixOverrides=",">
<if test="memberLevel != null and memberLevel !=''.toString()">m_level=#{memberLevel},</if>
<if test="memberName != null and memberName !=''.toString()">m_name=#{memberName},</if>
<if test="memberEmail != null and memberEmail !=''.toString()">m_email=#{memberEmail}</if>
</trim>
<where>
<if test="memberId != null and memberId !=''.toString()">m_id=#{memberId}</if>
</where>
</update>
set 엘리먼트는 동적으로 SET 키워드를 붙히고 필요없는 콤마를 제거
prefix와 suffix (overrides) 키워드로 접두사와 접미사 관리가 쉬워짐