문법
<sql id/>
<include refid/>
...
<mapper>
....
<sql id="exampleSelect">
SELECT * FROM TABLE1
</sql>
<select id="getList" resultType="hashmap">
<include refid="exampleSelect" />
WHERE name = #{value}
</select>
</mapper>
출처: https://marobiana.tistory.com/22 [Take Action]
내 Mapper에 사용한 경우 : 공통으로 반복되는 WHERE 구문에 사용
<mapper namespace="board">
<!-- 공통 쿼리문 -->
<sql id="fn_keyword">
<if test="word != '' ">
<choose>
<when test ="key == 'ALL' ">
WHERE
TITLE like '%' || #{word} || '%'
OR MEMBER_ID like '%' || #{word} || '%'
OR CONTENT like '%' || #{word} || '%'
</when>
<otherwise>
WHERE ${key} like '%' || #{word} || '%'
</otherwise>
</choose>
</if>
</sql>
<!-- count -->
<select id="count" resultType="int" parameterType="hashmap">
SELECT
COUNT(*) TOTAL
FROM
BOARD
<include refid="fn_keyword"/>
</select>
<!-- 게시글 목록 -->
<select id="selectBoardList" parameterType="hashmap" resultType="hashmap">
SELECT * from
(
SELECT ROW_NUMBER() OVER(ORDER BY BOARD_NO) AS rnum,
, BOARD_NO, TITLE, MEMBER_ID, REGDATE
FROM BOARD
<include refid="fn_keyword"/>
ORDER BY rnum desc
)
WHERE RNUM BETWEEN #{LimitStart} AND #{LimitEnd}
</select>
</mapper>
'BackEnd > MyBatis' 카테고리의 다른 글
[MyBatis] list로 넘긴 데이터를 foreach 로 where in 구문에서 사용 (0) | 2022.09.15 |
---|---|
[Spring Boot] [MyBatis] xml 에서 스네이크 표기법을 camelCase로 자동 변환 / resultMap 지정하지 않고 사용하기 (0) | 2022.06.15 |
[MyBatis] resultMap (0) | 2020.11.16 |