SQL INSERT 나 UPDATE 를 실행하는데

 

특정 컬럼에 값이 null이나 "" (빈문자열)이 저장되지 않도록 제어하고 싶은 경우가 있으면

 

MyBatis의 <choose> 를 활용하여 동적쿼리를 구현할 수 있다.

 

그래서 변수값이 null 이 넘어오거나 "" 빈문자열이 넘어올 때 지정한 기본값을 저장하여

 

DB 테이블 컬럼에 null이나 ""(빈문자열) 이 직접적으로 저장되지 않도록 제어가 가능하다.

 

 

/* 예시 UPDATE 문 : 파라미터에는 testVal 와 idx 라는 key로 value(값) 가 담겨있다고 가정 */

<update id="updateTest" parameterType="hashmap"> 
    UPDATE
            TEST_TABLE
       SET
          <choose>
/* testVal 값이 null 또는 ''(빈문자열) 이면 아래 <when> 블록 안 구문을 실행 */
             <when test="testVal == null or testVal == ''">
                content = 'default value'
             </when>
/* testVal 값이 null 또는 ''(빈문자열) 아니라면 <otherwise> 블록 안 구문을 실행 */
             <otherwise>
                content = #{testVal}
             </otherwise>
     WHERE
            test_idx = #{idx}
</update>

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기