■ Data Skill ■/MyBatis

[iBatis] iBatis- LIKE 조건, IN 조건 만들기

한길(One Way) 2023. 2. 25.

 

iBatis에서 Where 문에 LIKE 조건을 만들때 아래와 같이 #name# 좌우에 '%'|| 와  ||'%' 를 감싸준다.

자바에서 %__% 를 구성하여 $name$ 로 던지는 방법도 있지만 아래의 방법이 효율적이다.

                         <isNotEmpty prepend="AND"property="name">

                                  NAME LIKE '%'|| #name# ||'%'

                         </isNotEmpty>

 

 

컬럼명과 파라미터에 함수를 적용하기에도 용이하다.

 

                         <isNotEmpty prepend="AND"property="name">

                                  FUNC(NAME) LIKE '%'|| FUNC(#name#) ||'%'

                         </isNotEmpty>

iBatis에서 Where 문에 IN 조건을 만들때 아래와 같이 IN ( ) 안에 $names$ 와 같은 형태로 기술한다.

파라미터 ​names 에는 값1, 값2, 값3 과 같이 콤마로 구분하여 값을 넣어서 전달한다.

 

                         <isNotEmpty prepend="AND"property="names">

                                  NAME IN ($names$)

                         </isNotEmpty>

 

전체코드는 아래와 같다.

 

        <sql id="whereCondition">

                 <dynamic>

                         <isNotEmpty prepend="AND"property="name">

                                  NAME LIKE '%'|| #name# ||'%'

                         </isNotEmpty>

                         <isNotEmpty prepend="AND"property="names">

                                  TYPE IN ($names$)

                         </isNotEmpty>

                 </dynamic>

        </sql>

728x90

댓글