마이바티스 사용하는 최고의 이유는
if, chose, trim, foreach 등의 동적쿼리 기능 때문
<if test="조건문">
대충 이런 식임.
choose는 뭔가 switch와 비슷한데, 근데 특정 값이 case가 아니라 조건문임
<choose>
<choose>
<when test="조건식1">
참일 시 넣을 내용
</when>
<when test="조건식2">
참일 시 넣을 내용
</when>
<otherwise>
위의 조건이 모두 만족하지 않을 시 이걸로 넣음.
</otherwise>
</choose>
<where>
<where>
<if test="조건식1">
and ~~~~
</if>
<if test="조건식2">
and ~~~~
</if>
<if test="조건식3">
and ~~~~
</if>
</where>
만약
저기 안에 하나도 안 맞으면 where조차 안 붙임.
근데 하나라도 맞으면,
where and는 sql문법 오류이므로 and를 지워줌. 첫번째면.
그 다음부터 맞은 것들은 and 붙여줌.
그러니까 뭔가 알아서 똑똑하게
where ~~~~ and ~~~~ and ~~~~
이런 형식을 맞춰준다는 거임.
<trim>
<trim prefix="where" prefixOverrides="AND|OR">
~~~~
</trim>
만약 접두사(prefix)에 and나 or가 있으면 where로 대체
<foreach>
<where>
<foreach item="item" index="index" collection="list"
open="ID in (" separator="," close=")" nullable="true">
${item}
</foreach>
</where>
반복처리 할 때 사용. where ID in (1,2,3,4,5,6) 같은 sql 문장을 쉽게 완성시킬 수 있음.
파라미터로 List를 전달하면 됨.
open 시작
separator 각 "," 끝나면 이거 붙여줌
close ")" 이걸로 닫음.
collection = 콜렉션 종류
item 각각의 아이템이름은 "item" 으로
index 인덱스 몇번째인지 쓰고 싶으면 index로
아마 거의 다른 것 보다는 where를 자주 쓰게 될거임.
'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글
24. ORM (0) | 2023.10.10 |
---|---|
23. JPA (0) | 2023.10.10 |
21. 마이바티스 적용2 (0) | 2023.10.10 |
20. 마이바티스 적용 1 (0) | 2023.10.10 |
19. MyBatis 설정 (0) | 2023.10.09 |