# DB의 데이터를 조회하여 웹 페이지에 표시하기
데이터 조회 과정
사용자가 URL로 데이터를 요청하면 이 요청 URL을 컨트롤러가 받고, 이 받아진 URL에서 찾고자 하는 데이터의 정보를 Repository에게 전달 한다. 이를 받은 Repository는 DB에게 요청을 보내고 DB는 해당 데이터를 찾아서 이를 Entity 타입으로 반환해 준다. 반환된 Entity는 모델을 통해 뷰 템플릿으로 전달이 되고, 최종적으로 클라이언트에게 전달이 된다.
데이터 조회 수행
데이터를 조회하기 위해서는 URL을 입력해야 하는데, 아래와 같이 입력하여 데이터를 가져온다.
localhost:8080/articls/1 이런식으로 요청 했을때 1번 값을 반환 하도록 작성한다.
컨트롤러 코드 변경
조회하는 데이터가 Article이기 때문에 ArticleController에 작성을 해준다.
ArticleController 파일 하단에 아래와 같이 데이터를 읽어 올 수 있도록 작성을 한다.
데이터 조회에서 URL로 값을 받아오기 위해서는 아래와 같이 컨트롤러에 코드 즉, @GetMapping 값이 필요하다.
URL 요청을 파라미터로 받아오기 위해서는 @PathVariable 값이 필요하다.
@GetMapping("articles/{id}")
public String show(@PathVariable Long id) {
log.info("id =" + id);
return "";
}
테스트를 위해 서버를 기동하고, localhost:8080/articles/1000 이라고 입력을 한다.
콘솔 창에서 id 값이 전달 되는지 확인한다.
아래와 같이 id =1000 이라는 값이 전달된 것을 확인 할 수 있다.
데이터 조회 흐름
1. id로 데이터를 가져온다.
2. 가져온 데이터를 모델에 등록한다.
3. 보여줄 페이지를 설정한다.
아래 코드 설명
레파지토리에서 id 값을 통해 데이터를 조회 할 수 있다. (Article articleEntity = articleRepository.findById(id).orElse(null);)
특별히 데이터가 없는 경우 null 값을 반환하도록 하는 구문 .orElse(null);)
그리고 아래와같이 모델에 데이터를 등록하고 등록된 데이터가 모델에서 사용될 수 있도록 되어 있다.
@GetMapping("articles/{id}")
public String show(@PathVariable Long id, Model model) {
log.info("id =" + id);
// 1. id로 데이터를 가져온다.
// Article타입의 articleEntity라는 이름으로 데이터를 받아 온다.
// 해당 id 값을 찾았는데 만약 값이 없다면 null을 반환해라 라는 의미.
// 그래서 articleEntity라는 변수에는 값이 있거나 없으면 null 이라는 변수가 담기게 된다.
Article articleEntity = articleRepository.findById(id).orElse(null);
// 2. 가져온 데이터를 모델에 등록한다.
model.addAttribute("article", articleEntity);
// 3. 보여줄 페이지를 설정한다.
return "articles/show";
}
뷰페이지 설명
아래와 같이 #을 통해서 모델에 등록된 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>
<td>{{id}}</td>
<td>{{title}}</td>
<td>{{content}}</td>
</tr>
{{/article}}
</tbody>
</table>
{{>layouts/footer}}
데이터를 등록하고 값을 조회하는 영상
'⭐ SpringBoot > 𝄜 게시판 with SpringBoot' 카테고리의 다른 글
12. 링크와 리 다이렉트 (0) | 2022.04.02 |
---|---|
11. 데이터 목록조회 (0) | 2022.04.01 |
현재까지 내용 정리 (0) | 2022.04.01 |
9. 롬복과 리팩터링 (0) | 2022.03.31 |
8. DB 테이블과 SQL (0) | 2022.03.31 |