01. Database

[iBatis 2.0] if-else 조건문 사용법

devamy 2024. 6. 27. 10:39

status(맵으로 넘긴 파라미터)라는 키값을 비교하여 sql문에서 분기처리를 하는데,

 

0 일때, and 조건을 실행하고

1,2,3 일 때, or 조건을 실행하고 싶었다.

 

세팅되어있는 ibatis는 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

 

<isEqual> 태그를 사용하여 값을 비교하는 조건 분기처리를 하였다.

<isEqual property="status" compareValue="0" prepend="and">

    (A_COLUMN IS NULL AND B_COLUMN IS NULL AND C_COLUMN IS NULL)
    
</isEqual>

<isEqual property="status" compareValue="1" prepend="and">

    (A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN= #status#)
    
</isEqual>

<isEqual property="status" compareValue="2" prepend="and">

    (A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN = #status#)
    
</isEqual>

<isEqual property="status" compareValue="3" prepend="and">

    (A_COLUMN = #status# OR B_COLUMN = #status# OR C_COLUMN = #status#)
    
</isEqual>

 

※ 만약 NULL인지 NOT NULL인지 비교하고 싶다면 아래의 태그를 작성하면 된다.

<isEmpty property="변수명">

null 일 때

</isEmpty>

<isNotEmpty property="변수명">

not null 일 때

</isNotEmpty>