YagSill

JAVA Spring boot 웹에서 데이터 조회 해보기 본문

JAVA Spring

JAVA Spring boot 웹에서 데이터 조회 해보기

YagSill 2022. 1. 13. 14:47
728x90

안냐세여 Yagsill 입니다!

 

오늘도 열시미 코딩을 하시는 모든분들 파이팅 입니다!

 

이전 포스트에 이어서 데이터를 조회하는 방법에 대해서 알아보겠습니답

 

일단 웹에 띄워야 하니

    @GetMapping("new/{id}")

이것을 통해 웹링크를 매핑해 줍니다. {id} <- 이 것은 그 데이터의 id값을 뒤에 넣으면 해당 데이터를 보여주겠다 이런 겁니다.

 

 @GetMapping("new/{id}")
    public String show(@PathVariable Long id, Model model) {
        log.info("id = " + id);

        // : id 데이터를 가져오기
        // articleRepository는 Optional 타입이기 때문에 마지막에 .orElse 를 넣어주어서 없으면 null값을 반환하게 해야 함.
        Article articleEntity = articleRepository.findById(id).orElse(null);

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

        //보여줄 페이지 설정
        return "articles/show";
    }

전체 코드는 이렇습니다.

-> Article이라는 타입의 articleEntity 라는 변수안에 articleRepository안의 메소드를 사용합니다. findById 

-> findById는 인자값을 id로 받습니다. 왜냐면 articleEntity라는 변수는 articleRepository(데이터베이스)안에 있는 값을 찾아야하는데 어떤 기준으로 찾을 수 있을까요? 당연히 우리가 정해두었던 id값을 가지고 찾겠죠?

-> 그리고 요 데이터를 model에 저장해 줍니다.

 

이후에 articles의 show.mustache파일을 만들어야해요 왜냐면 return값을 "articles/show" 라고 해두었기 때문이죠

{{>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>{{id}}</th>
            <td>{{title}}</td>
            <td>{{content}}</td>
        </tr>
        {{/article}}
    </tbody>
</table>

{{>layouts/footer}}

-> {{#article}} : 이 것은 model에 저장되어 있는 데이터를 가져올 때 쓰는 것입니다. 음 쉽게 설명하자면 entity라는 데이터 행을 만들었으니 해당 행을 가져올때 우리는 id, title, content를 가져온다고 했었죠? 그래서 태그를 두고 사용해야 합니다

-> 그리고 id, title, content를 {{}} 이 형식으로 가져오면 값이 DTO(Controller) -> entity(repository) 를 통해서 DB에 저장이 됩니다.

 

-> 이런 내용으로 데이터를 넣어볼게여

 

-> 짠 이런 내용으로 들어오네요~ ㅋㅋ Content의 내용은 미리 넣어둔 거라서  신경쓰지 않아도 됩니다. 

 

그럼 즐거운 JAVA 서버를 세팅해 보세요~~~

728x90