[Ibatis] Dynamic Query SQL
Dynamic Query Attribute
| 속성 명 | 설명 |
| prepend | 요소의 내용 가장 앞에 출력 |
| property | 파라미터(Parameter)의 값을 비교할때 사용 |
| removeFirstPrepend | 처음 내용을 출력하는 하위 요소의 prepend값의 출력 여부 |
| compareProperty | 비교할 다른 매개변수명 |
| compareValue | 비교대상이 될 값 |
Dynamic Query SQL
| 태그 | 설명 |
| <isEqual> | property 값이 같을때만 쿼리 실행 ex ) <isEqual prepend="AND" property="useFl" compareValue="Y"> |
| <isNotEqual> | property 값이 같지 않을 때만 쿼리 실행 ex ) <isNotEqual prepend="AND" property="useFl" compareValue="Y"> |
| <isGreaterThan> | property의 값이 비교값보다 클경우 쿼리를 실행합니다. ex ) <isGreaterThan prepend="AND" property="user_age" compareValue="20"> |
| <isGreaterEqual> | property의 값이 비교값보다 같거나 클경우 쿼리를 실행합니다. ex ) <isGreaterEqual prepend="AND" property="user_age" compareValue="20"> |
| <isLessEqual> | property의 값이 비교값보다 작거나 같을 경우 쿼리를 실행합니다. ex ) <isLessEqual prepend="AND" property="user_age" compareValue="20"> |
| <isNull> | property 값이 null일 경우 쿼리 실행 |
| <isNotNull> | property 값이 null이 아닐 경우 쿼리 실행 |
| <isEmpty> | property값이 비어있을경우 쿼리를 실행합니다. |
| <isNotEmpty> | property값이 비어있지 않을 경우 쿼리를 실행합니다. |
| <isPropertyAvailable> | property값이 유효할 경우 쿼리를 실행합니다. |
| <isNotPropertyAvailable> | property값이 유효하지 않을 경우 쿼리를 실행합니다. |
| <iterate> |
배열 타입의 파라메터를 받을 때 활용합니다. 배열의 값을 빼내어 콤마로 구분하여 괄호 '(' , ')' 내에 넣게 되죠. ex) ('20', '21', '22', '33') |
| <dynamic> |
하위 태그에 일치되는 내용이 존재할 경우 where절을 붙인다. 가장 처음 일치요소의 prepend="AND" 는 생략된다. ex) <select id="getUserList" resultClass="UserModel"> SELECT * FROM T_USER_INFO <dynamic prepend="WHERE"> <isNotNull property="user_id" prepend="AND"> user_id = #user_id# </isNotNull> </dynamic> </select> user_id 파라메터 값 test1234이라면 <isNotNull >태그의 prepend는 생략되고 WHERE 절이 붙어 WHERE user_id = #user_id# 쿼리가 실행된다.
|
iBatis 관련 자료 : https://ibatis.apache.org/docs/dotnet/datamapper/ch03s09.html