반응형

개발 과정에서 업데이트 해야할 요소가 정해져있지 않은 경우가 있을 수 있다.

 

<update id="updateTest" parameterType="map">
    update testTable
    <trim prefix="set" suffixOverrides=",">
        <if test="test1 != null">test1 = #{test1},</if>
        <if test="test2 != null">test2 = #{test2},</if>
    </trim>
</update>

위 와 같이 사용하면 되는데 하나씩 알아보자

 

Trim

접두어(prefix), 접미어(suffix) 작업 하며, <if>를 보완하는 역할

 

속성에 대해서 알아보자

1. prefix

    <trim>태그 내부에 실행될 쿼리문 가장 앞에 속성값을 삽입

 

insert (id, pw) 
<trim prefix="values">
    ('admin', '1111')
</trim>

-> insert (id, pw) 
      values ('admin', '1111')

 

2. suffix

    <trim>태그 내부에 실행될 쿼리문 가장 뒤에 속성값을 삽입

insert (id, pw) values
<trim prefix="(" suffix=")">
    'admin', '1111'
</trim>

-> insert (id, pw) values
       ('admin', '1111')

 

3. prefixOverrids

    <trim>태그 내부에 실행될 쿼리문 앞에 문자가 prefixOverrides로 설정해둔 문자와 같으면 해당 문자를 제거

 

select * from testTable where
<trim prefixOverrides = "and">
	and id = 'test1'
</trim>

-> select * from testTable where 
	id = 'test1'

 

4. suffixOverrids

    태그 내부에 실행될 쿼리문 뒤에 문자가 suffixOverrids로 설정해둔 문자와 같으면 해당 문자를 제거

 

select * from testTable where
<trim suffixOverrides = "or">
	id = 'test1' or
</trim>

-> select * from testTable where 
	id = 'test1'

 

정리

prefix, suffix는 추가

prefixOverrids, suffixOverrides는 제거

반응형