728x90
MyBatis는 동적 SQL을 작성하여 다양한 상황에 맞는 유연한 쿼리를 가능하게 합니다. 동적 SQL은 조건에 따라 SQL 문을 동적으로 변경할 수 있게 해주어, 복잡한 쿼리 작성을 간소화합니다.
동적 SQL의 기본 요소
* if : 조건에 따라 SQL 문의 일부를 포함시키거나 제외시키는 데 사용됩니다.
<select id="findActiveBlogWithTitleLike" resultType="Blog">
SELECT * FROM BLOG
WHERE state = ‘ACTIVE’
<if test="title != null">
AND title like #{title}
</if>
</select>
title이 null이 아닐 경우에만 title에 대한 검색 조건을 적용합니다.
* choose : 여러 조건 중 하나를 선택하여 적용할 때 사용됩니다. switch 문과 유사한 기능을 합니다.
<select id="findBlog" resultType="Blog">
<choose>
<when test="title != null">
WHERE title like #{title}
</when>
<otherwise>
WHERE featured = 1
</otherwise>
</choose>
</select>
title이 null이 아니면 title에 대한 검색 조건을, 그렇지 않으면 featured가 1인 블로그를 검색합니다.
* foreach : 컬렉션의 각 항목에 대해 반복적으로 SQL 구문을 생성할 때 사용됩니다.
<select id="selectPostIn" resultType="Blog">
SELECT * FROM POST P
WHERE P.ID in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
주어진 list 컬렉션의 각 항목에 대해 IN 조건을 동적으로 생성합니다.
'웹개발 > spring && springboot' 카테고리의 다른 글
스프링 mybatis 캐시처리 (0) | 2024.04.06 |
---|---|
스프링 mybais 인터페이스 (0) | 2024.04.06 |
스프링 mybatis 쿼리 작성 (0) | 2024.04.06 |
스프링 mybatis 설정 (0) | 2024.04.06 |
스프링 JPA 쿼리 메소드의 기능 (0) | 2024.04.05 |