Expected one result (or null) to be returned by selectOne(), but found: 5
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 5] with root cause
게시글 목록을 불러들이는 boardList.do를 요청했는데
위와 같은 오류가 난다
+관련코드
boardMapper.java
boardMapper.xml
boardVO
어디서부터 잘못된걸까 확인해보자!!!
우선 콘솔창에 vo가 하나도 안뜬 것을 봐서는
mapper의 boardList()에서 잘못된 것 같다
SELECT * FROM board;
board 테이블에 들어있는 값들을 확인하는 쿼리문을 실행하면
값이 5개가 들어있다는 것을 알 수 있다
그렇담 여기서 숫자5의 의미가 board테이블의 row를 의미함을 알 수 있다!!!
결과가 하나의 행만 나오게 쿼리문을 짰는데
쿼리문 실행시켰더니 5개의 행이 나와서 오류가 난다는 것 같다
나는 db내 게시판 테이블에 있는 모든 데이터를 불러오는 게 목적이라
n개의 행이 나와도 다 값을 받아오고 싶은 건데
지금 내 쿼리문은 한 행만 받고있고!!!!!!!!!
몇 개의 행이 나오든 다 받아야한다!!!!
=> 그렇다면 n개의 행을 하나로 묶어서 받아오는 건 어떨까?
-- 다시 한 번 코드를 살펴보자!!!--
xml은 패스
기존 boardList의 반환값은 boardVO였고
인터페이스에서 boardList가 실행되면 동적배열로 select한 값을 받아온다고 수정
이때 내부를 보면 이렇게 생겼을 것이다~
(귀찮아서 인덱스 5,6은 생략함)
코드를 고쳤으니 실행시켜보자!!!
콘솔창에도 잘 뜨고 값이 잘 전달되는 걸 확인할 수 있다!
one result (or null) to be returned by selectOne(), but found: 5
라는 오류가 나면 mapper쪽을 잘 확인해보자
특히 메소드의 리턴값!!!