본문 바로가기

Spring Boot/Spring Boot

40: Springboot (Read-board)

Read

Board 에 글 읽기 기능을 수행하는 코드를 추가한다

요청 URL은 GET http://localhost:8080/board/{id} 으로 지정

Controller 코드이다. boardService의 getBoardById 로 URL에서 받은 변수 id를 넘겨준다

    @GetMapping(value = "/{id}")
    public ApiResponse<BoardDTO> getBoardById(@PathVariable int id) throws Exception {
        return boardService.getBoardById(id);
    }

 

 

Service부분의 코드. DAO의 getBoardById로 id값을 넘겨 수행하고 수행한 값을 return한다

    public ApiResponse<BoardDTO> getBoardById(int id) {
        BoardDTO data = boardDAO.getBoardById(id);
        return new ApiResponse(true, data);
    }

 

Mapper에 쿼리가 담겨있다. int = id값을 받으면 쿼리를 수행하고 ResultType 속성으로 값을 반환해

BoardDTO로 결과를 보내준다

 

    <select id="getBoardById" parameterType="int" resultType="kr.ac.daegu.springbootapi.board.model.BoardDTO">
        SELECT * from Board
        WHERE id = #{id}
    </select>

 

 

출력은 내 코드랑 같아서 전에 찍어둔 사진!

 

아래는 내가 작성한 쿼리...

select후 반환하는 방법을 잘 몰라서 이리저리 해메다가 완성(?)한 쿼리이다

리뷰를 하고 보니 resultMap을 왜 분리시켜서 놔뒀는지... 구글링하다가 찾은 방법을 급하게 썼었나봐..

(그래도 실행은 잘 됐었다...)

<select id="getBoardRead" parameterType="kr.ac.daegu.springbootapi.board.model.BoardDTO" resultMap="boardRead">
    Select * from board where id=#{id}
</select>

<resultMap id="boardRead" type="kr.ac.daegu.springbootapi.board.model.BoardDTO"/>

인생..