1. 사용법
- <where>는 태그에 의해 컨텐츠가 리턴되면 단순히 “WHERE”만을 추가
컨텐츠가 “AND”나 “OR”로 시작한다면 그 “AND”나 “OR”를 제거 - <where>가 기대한 것처럼 작동하지 않는다면 <trim>를 사용자 정의
2. 쿼리
- <where> 사용
<select id="findActiveBlogLike" resultType="Blog">
SELECT * FROM BLOG
<where>
<if test="state != null">
state = #{state}
</if>
<if test="title != null">
AND title like #{title}
</if>
<if test="author != null and author.name != null">
AND author_name like #{author.name}
</if>
</where>
</select>
- <trim> 사용-맨 앞에 있는 연산자를(AND 또는 OR) 제거
<select id="findActiveBlogLike" resultType="Blog">
SELECT * FROM BLOG
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="state != null">
AND state = #{state}
</if>
<if test="title != null">
OR title like #{title}
</if>
<if test="author != null and author.name != null">
AND author_name like #{author.name}
</if>
</trim>
</select>
Mybatis 공식 사이트:
https://mybatis.org/mybatis-3/ko/dynamic-sql.html
'백엔드 > Mybatis' 카테고리의 다른 글
[ Mybatis / 마이바티스 ] <sql>, <include> 공통 쿼리 묶기 (0) | 2021.07.13 |
---|