Spring

아이바티스(iBATIS) vs 마이바티스(MyBatis) 태그 비교

dev.mk 2019. 9. 29. 17:40
반응형

네임스페이스 형태

iBATIS : <sqlMap namespace="bbsDAO">

MyBatis : <mapper namespace="com.company.test.bbsMapper">

Dynamic Query  iBATIS vs MyBatis 비교 예제

iBATIS MyBatis
isNull
//searchName변수가 null이면
<isNull property="searchName">
AND NAME IS NOT NULL
</isNull>
  //searchName변수가 null이면
<if test='searchName == null'>
AND NAME IS NOT NULL
</if>
isNotNull
//searchName 변수가 널이 아니면 NAME 컬럼에 검색 값 대입
<isNotNull property="searchName">
AND NAME = #searchTxt# 
</isNotNull>
//searchName 변수가 널이 아니면 NAME 컬럼에 검색 값 대입
<if test=' searchName != null ' >
AND NAME = #{searchTxt}
</if>
isEmpty
//searchName 변수가 공백이면
<isEmpty property="searchName">
AND NAME IS NOT NULL
</isEmpty>
//searchName 변수가 공백이면
<if test='searchName == "" '>
AND NAME IS NOT NULL
</if>
isNotEmpty
//searchName 변수가 공백이 아니면
<isNotEmpty property="searchName">
AND NAME = #searchTxt# 
</isNotEmpty>
//searchName 변수가 공백이 아니면
<if test="searchName != ''">
AND NAME = #{searchTxt}
</if>
//searchAge변수가 20보다 클 경우
<isGreaterThan property="searchAge" compareValue="20">
조건 작성
</isGreaterThan>
//searchAge변수가 20보다 클 경우
<if test='searchAge > 20'>
조건 작성
</if>
isGreaterEqual
//searchAge 변수가 20보다 크거나 같을 경우
<isGreaterEqual  property="searchAge" compareValue="20">
조건 작성
</isGreaterEqual>
//searchAge 변수가 20보다 크거나 같을 경우
<if test='searchAge >= 20'>
조건 작성
</if>
isLessThan
//searchAge 변수가 20보다 작을 경우
<isLessThan property="searchAge" compareValue="20">  
조건 작성
</isLessThan>
//searchAge 변수가 20보다 작을 경우
<if test='searchAge < 20'>
조건 작성
</if>
isLessEqual
//searchAge 변수가 20보다 작거나 같을 경우
<isLessEqual property="searchAge" compareValue="20">
조건 작성
</isLessEqual>
//searchAge 변수가 20보다 작거나 같을 경우
<if test='searchAge <= 20'>
조건 작성
</if>
isEqual
//searchType변수의 값이 title이면
<isEqual property="searchType" compareValue="title">
AND TITLE = #searchTxt#
</isEqual>
//searchType변수의 값이 title이면
<if test=' searchType == "title" '>
AND TITLE = #{searchTxt}
</if>
isNotEqual
//searchType변수의 값이 title이 아니면
<isNotEqual property="searchType" compareValue="title">
AND CONTENTS = #searchTxt#
</isNotEqual>
//searchType변수의 값이 title이 아니면
<if test='searchType != "title"'>
AND CONTENTS = #searchTxt#
</if>

 

Dynamic Query 종류

iBATIS MyBatis
태그 설명 태그 설명
 <isEqual>  property 값이 같을때만 쿼리 실행     일반 개발언어의 
if or if ~ else와 동일
 <isNotEqual>  property 값이 같지 않을 때만 쿼리 실행 
 <isGreaterThan>  property 값이 비교값보다 클 경우 쿼리 실행 
<isGreaterEqual>   property 값이 비교값보다 같거나 클 경우 쿼리 실행
 <isLessEqual>  property 값이 비교값보다 작거나 같을경우 쿼리 실행
 <isPropertyAvailable>  property 값이 유효할 경우 쿼리 실행
 <isNotPropertyAvailable>  property 값이 유효하지 않을 경우 쿼리 실행
 <isNull>  property 값이 null일 경우 쿼리 실행 
<isNotNull>   property 값이 null이 아닐 경우 쿼리 실행 
<isEmpty>   property 값이 비어있을경우 쿼리 실행
<isNotEmpty>   property 값이 비어있지 않을경우 쿼리 실행 
 <isParameterPresent>  parameter가 있을경우 쿼리 실행
<isNotParameterPresent>   parameter가 없을경우 쿼리 실행
<iterate>   배열 타입의 파라미터를 받을 때 활용  <foreach>  배열 타입의 파라미터를 받을 때 활용 
<dynamic>   하위 태그에 일치하는 내용이 존재할 경우   where절을 붙인다. <where>, <trim>   iBATIS의 <dynamic>과 같이 조건에 따라 where절을 추가할 때 사용
     <set>  동적으로 update 구문을 만들 때 사용
     <bind>  변수를 생성하는 태그 

 

반응형