본문 바로가기
웹개발/spring && springboot

스프링 mybais 동적쿼리 작성

by 지구별 여행자 임탱 2024. 4. 6.
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