이상하게 mapper.xml에서 sql 쿼리가 정상적으로 작동을 안하는지 결과가 엉뚱하게 테이블 내의 모든 row를 리턴해서 보여주고 있는 것이었다. 그리고 에러 메시지도 안뜨고...
내가 원하는건 딱 keyword를 포함하고 있는 게시글들이었는디...
참으로 답답했는데 다시 검색 기능 구현하기를 검색해본 결과 아래와 같이 코드를 변경해주니 정상 작동하였다. (감격 ㅠㅜㅜ)
요약:
like '%'||#{keyword}||'%'
부분을 ->
CONCAT ('%', #{keyword},'%')
문제였던 구역: (전)
<!-- sql code 조각 -->
<!-- 반복되는 sql의 일부를 sql태그를 이용하여 따로 빼둘수 있다.
검색 조건 sql -->
<sql id="search">
<choose>
<!-- 검색옵션이 전체 검색일 경우 -->
<when test="searchOption == 'all'">
WHERE
writer like '%'||#{keyword}||'%'
OR
content like '%'||#{keyword}||'%'
OR
title like '%'||#{keyword}||'%'
</when>
<!-- 전체 검색이 아닐 경우 -->
<otherwise>
WHERE ${searchOption} like '%'||#{keyword}||'%'
</otherwise>
</choose>
</sql>
문제였던 구역: (후)
<sql id="search">
<choose>
<!-- 검색옵션이 전체 검색일 경우 -->
<when test="searchOption == 'all'">
WHERE
writer like CONCAT ('%', #{keyword},'%')
OR
content like CONCAT ('%', #{keyword},'%')
OR
title like CONCAT ('%', #{keyword},'%')
</when>
<!-- 전체 검색이 아닐 경우 -->
<otherwise>
WHERE ${searchOption} like CONCAT ('%', #{keyword},'%')
</otherwise>
</choose>
</sql>
board-mapper.xml 전체 코드
<mapper> 태그 안에 아래 코드:
<!-- 01. 게시글 전체 목록 조회 및 검색조회까지 -->
<select id="listAll" resultType="board">
SELECT*FROM
LF_Product_Test
<!-- 검색조건 -->
<include refid="search"></include>
ORDER BY seq
<!-- 페이징 -->
<!-- <include refid="pagingFooter"></include> -->
</select>
<!-- 02_02. 게시글 레코드 갯수 -->
<select id="countArticle" resultType="int">
SELECT COUNT(*) FROM LF_Product_Test
<!-- WHERE절을 include 태그로 삽입 -->
<include refid="search"></include>
</select>
<!-- sql code 조각 -->
<!-- 반복되는 sql의 일부를 sql태그를 이용하여 따로 빼둘수 있다.
검색 조건 sql -->
<sql id="search">
<choose>
<!-- 검색옵션이 전체 검색일 경우 -->
<when test="searchOption == 'all'">
WHERE
writer like CONCAT ('%', #{keyword},'%')
OR
content like CONCAT ('%', #{keyword},'%')
OR
title like CONCAT ('%', #{keyword},'%')
</when>
<!-- 전체 검색이 아닐 경우 -->
<!-- 따옴표 넣어줬는데 맞나...? -->
<otherwise>
WHERE ${searchOption} like CONCAT ('%', #{keyword},'%')
</otherwise>
</choose>
</sql>
'웹 스프링' 카테고리의 다른 글
form 에서 400 에러 발생시 (0) | 2021.04.14 |
---|---|
21.03.31 (0) | 2021.04.01 |
[스프링] Spring: Difference of /** and /* with regards to paths (0) | 2021.03.24 |
[웹 스프링] 구글 로그인 관련 정보 (0) | 2021.03.04 |
[웹 스프링 Spring ] BootstrapCDN 사용법 (0) | 2021.02.24 |