이전까지 단순히 게시글 등록까지만 완료한 후, DB에 등록한 데이터가 저장되는 것 까지 알아 보았다.
이렇게 저장된 데이터가 실제로 html 화면에 우리 눈에는 직접적으로 보이지 않는다. 한번 뽑아내보자!!
먼저 board-mapper.xml로 들어가자.
board-mapper.xml
mapper에서 select 쿼리를 사용하므로 resultMap 값이 제대로 들어갔는지 확인해주고,
조회할 쿼리를 작성하자. 이후 service 인터페이스로 넘어간다.
매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음
2. 채워줄 값이 하나일 경우
2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나
2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나
3. 채워줄 값이 여러개인 경우 : 매개변수는 DTO 객체.
리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의
INSERT, UPDATE, DELETE 쿼리 실행 결과는
리턴타입을 int 혹은 void 사용하면됨.
SELECT 쿼리 결과의 리턴타입은 크게 두 가지로 나뉨.
조회결과 데이터가 무조건 한줄만 조회 : DTO 객체.
조회 결과 데이터가 0줄이상 가변적일 경우 : List<DTO> 객체.
BoardService.java 인터페이스
게시글 등록은 했다.select쿼리 결과는 위에서 게시한 글처럼 두 가지로 나뉘는데,
조회 리스트를 뽑아내주는 역할을 하기 때문에 List<DTO> 객체를 사용해야한다.
BoardServiceImple.java 클래스
인터페이스에서 만들었던 메소드를 Impl 클래스에서 오버라이딩해주어 sqlSession 등록을 완료해준다.
select 쿼리는 commit이후 리턴결과를 받아줄 수 있다. 이렇게 작업이 모두 끝났으면 다시 서블릿으로 돌아간다.
BoardController.java 서블릿
쿼리문에서 완성된 자료형 List에 BoardDTO 객체를 넣어 list를 생성해주고,
boardService 즉, 만들었던 쿼리문을 list에 넣어준다. 이후 list라는 이름으로 board_list.jsp에 뿌려줄 수 있다.
board_list.jsp
list값을 ${list}로 받아와 board로 forEach문을 돌린다.
이후 각각의 데이터들을 board에서 뽑아내 화면상에 나타낼 수 있다.
이렇게 성공적으로 데이터가 리스트로 출력되는 것을 볼 수 있다.
다음으로 해볼 것은 삭제와 수정이다. 하지만 그 전에 어떤 내용을 삭제할 것인지 정해야한다.
따라서, 상세 정보 조회를 먼저 한 후 그 폼에서 삭제와 수정 기능을 넣어보려고한다.
댓글