| 단일 데이터 조회하기
1) URL 요청받기
DB에 저장한 데이터를 웹 페이지에서 보려면 출력 페이지에 접속해야 합니다.
그렇게 하려면 URL 요청을 받아야 합니다.
@GetMapping("/articles/{id}")
@GetMappling() 어노테이션으로 URL 요청을 받도록 했으며
URL Id에 따라 /article/1, /article/2 등으로 받기로 했으므로 Id 변수로 받도록 했습니다.
2) 데이터 조회해 출력하기
- id를 조회해 데이터 가져오기
DB에서 데이터를 가져오는 주체는 Repository입니다.
@Autowired 어노테이션으로 구현했으며
생성자로 생성 후 메서드 목록을 확인해서 findById(Long id) 메서드를 사용했습니다.
findById()는 특정 Entity의 id 값 기준으로 데이터를 찾아 Optional 타입으로 반환합니다.
- 모델에 데이터 등록하기
데이터를 모델에 등록하는 이유는
MVC 패턴에 따라 조회한 데이터를 뷰 페이지에서 사용하기 위해서입니다.
모델을 사용하기 위해 show() 메서드의 매개변수로 model 객체를 받아오며
모델에 데이터를 등록할 때는 addAttribute() 메서드를 사용합니다.
- 뷰 페이지 반환하기
return 설정에 맞는 mustache 파일명을 등록해 줍니다.
결과)
| 데이터 목록 조회하기
앞서 단일 데이터를 조회할 때는 repository가 entity를 반환했다면,
데이터 목록을 조회할 때는 entity의 묶음인 List를 반환합니다.
1) URL 요청받기
index()라는 메서드를 만들어 /articles URL 요청이 들어왔을 때 데이터 목록을 조회되게 했습니다.
@GetMapping("/articles")를 선언해 URL 요청을 받도록 했습니다.
2) 데이터 조회해 출력하기
- 모든 데이터 가져오기
앞서 DB에서 데이터를 가져오려면 repository에서 작업했습니다.
이번에 모든 데이터를 가져오기 위해 repository.findAll() 메서드를 사용했습니다.
메서드 반환은 List<> 타입으로 반환되므로 List<Article>로 받았습니다.
findAll()로 반환되는 데이터 타입은 Iterable 이라 형변환을 진행했습니다.
예제) 형변환 방식 3가지
List<Article> articleEntityList = (List<Article>)articleRepository.findAll();
Iterable<Article> articleEntityList =articleRepository.findAll();
public interface ArticleRepository extends CrudRepository<Article, Long> {
@Override
ArrayList<Article> findAll(); // Iterable → ArrayList 수정
}
3) 모델에 데이터 등록하기
가져온 데이터를 받은 articleEntityList를 뷰 페이지로 전달할 때는 모델을 사용합니다.
index() 메서드에 매개변수로 model 객체를 받아오고
addAttribute() 메서드로 전달할 때 articleEntityList를 등록합니다.
4) 뷰 페이지 설정하기
index.mastache 파일이 뷰페이지로 설정될 수 있게
return 문을 article/index 로 했습니다.
결과)
'JAVA > 코딩자율학습-스프링부트' 카테고리의 다른 글
[코딩 자율학습 스프링부트] 7장 게시글 수정하기 : Update (0) | 2024.11.30 |
---|---|
[코딩 자율학습 스프링부트] 6장 게시판 내 페이지 이동하기 (0) | 2024.11.29 |
[코딩 자율학습 스프링부트] 3장 게시판 만들고 새 글 작성 : Create (0) | 2024.11.27 |
[코딩 자율학습 스프링부트] 2장 MVC 패턴 (0) | 2024.11.26 |
[코딩 자율학습 스프링부트] 1장 스프링 부트 시작하기 (0) | 2024.11.25 |