Engineering Note

[스프링 부트 입문 11] 데이터 조회하기 본문

Server/Spring

[스프링 부트 입문 11] 데이터 조회하기

Software Engineer Kim 2022. 7. 10. 00:13

본 내용은 홍팍 스프링부트 강좌를 참고하였습니다.

https://www.youtube.com/watch?v=E0YO0XqpBIY&list=PLyebPLlVYXCiYdYaWRKgCqvnCFrLEANXt&index=12

Mission

  • DB에 저장된 데이터를 조회하여 웹페이지에서 확인하기

1. client가 sever에 데이터 요청, 게시물의 id로 게시물을 조회요청, -> domain:8080/article/{id}

2. 요청된 url은 controellr가 전달 받음

3. controller는 repository를 통해 DB에서 데이터 조회

4. DB는 Data를 찾아 Entity로 반환

5. 반환된 Entity는 Model을 통해 View template에 전달 됨

6. 최종적으로 결과 페이지를 완성하여 Clinet에 response

사용 어노테이션 정리

@PathVariable

  • url을 통해 전달 받은 데이터를 자바 메서드가 사용할 수 있게 해줌
    /articles/1로 요청이 오면
    id가 1인 데이터를 찾기 위해 자바 메서드의 매개변수로 id로 전달된다.
 @GetMapping("/articles/{id}")
    public String showArticle(@PathVariable Long id, Model model){
        log.info("id = " + id);
        // 1: id로 데이터를 가져옴, Entity에 저장
        Article articleEntity = articleRepository.findById(id).orElse(null);

        // 2: 가져온 데이터를 모델에 등록
        model.addAttribute("article", articleEntity);

        // 3: 보여줄 페이지 설정
        return "articles/showArticle";
    }

이 데이터를 View에서 사용하기 위해 Model에 등록해준다. 이때 매개변수에 Model이 있어야 한다. Model에 "article"키로 articleEntity를 등록해주었으므로 View에서 article이 사용이 가능하다.

{{>layouts/header}}
<table class="table">
    <thead>
    <tr>
        <th scope="col">ID</th>
        <th scope="col">TITLE</th>
        <th scope="col">CONTENT</th>
    </tr>
    </thead>
    <tbody>
    {{#article}}
    <tr>
        <th scope="row">{{id}}</th>
        <td>{{title}}</td>
        <td>{{content}}</td>
    </tr>
    {{/article}}
    </tbody>
</table>
{{>layouts/footer}}

화면 페이지는 부트스트랩 에서 table로 검색해서 사용

 

 

 

결과화면

Comments