[DB] MyBatis 동적 SQL - <choose>, <sql>과 <include>

seonjeong·2023년 4월 21일
0

DB

목록 보기
2/7

MyBatis의 동적 SQL 기능을 사용하면 하나의 SQL문으로 여러 케이스를 처리할 수 있다

🔥 <choose>

  • 검사할 조건이 여러개일 경우 사용
  • if-else문과 유사
  • 일치하는 조건이 없으면 <otherwise>의 SQL이 반환

사용법

<choose>
	<when test="조건1">SQL</when>
    <when test="조건2">SQL</when>
    <otherwise>SQL</otherwise>
</choose>

🔥 <sql><include>

  • <sql> 태그는 다른 구문에서 재사용가능한 SQL구문을 정의할 때 사용
  • <sql> 태그 내에 있는 쿼리들을 재사용하고 싶다면 재사용할 쿼리의 상단에 선언되어야 함
  • <sql>태그 내에 파라미터 값 추가 가능. 단 해당 태그를 불러오는 쿼리문에서 <sql> 태그 내에 선언된 파라미터 값을 처리할 수 있는 인자 값이 존재해야만 에러가 나지 않음
  • <include> 태그는 같은 파일 내에 정의해둔 <sql> 태그 내의 쿼리들을 불러옴

사용법

<sql id="title">
	where seq = #{seq}
</sql>

<select id="getTitle" resultType="String">
	select title from table
	<include refid="title"></include>
</select>




Reference

https://atoz-develop.tistory.com/entry/MyBatis-%EB%8F%99%EC%A0%81-SQL-choose%EC%99%80-set%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EB%8F%99%EC%A0%81-SQL-%EB%A7%8C%EB%93%A4%EA%B8%B0
https://kimvampa.tistory.com/176![](https://velog.velcdn.com/images/judyan/post/76849168-d365-409c-bec0-28aa52cab796/image.png)

profile
🦋개발 공부 기록🦋

0개의 댓글