스프링/6. 스프링 DB-2

22. 마이바티스 기능들.

sdafdq 2023. 10. 10. 03:12

마이바티스 사용하는 최고의 이유는

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