유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
지난번 insert에 이어 select, update, delete도 할 수 있다.
기본적인 매핑들만 기억한다면 된다고 본다.
GetMapping = select
PutMapping = update
PostMapping = insert
DeleteMapping = delete
우선 특정 유저 검색해보기를 진행해보자
특정유저를 select 하는거기에 GetMapping을 사용하고 user_idx를 기준으로 검색하고자한다.
@GetMapping("/detail/{user_idx}")
public User detail(@PathVariable int user_idx) {
User user = userRepository.findById(user_idx).orElseThrow(new Supplier<IllegalArgumentException>() {
@Override
public IllegalArgumentException get() {
return new IllegalArgumentException("유저 "+user_idx+" 는 없는 유저입니다.");
}
/* 람다식
* User user = userRepository.findById(user_idx).orElseThrow(()-> {
* return new IllegalArgumentException("유저 "+user_idx+" 는 없는 유저입니다.")
* });
* */
});
return user;
}
그 후 postman에서 해당 주소를 입력하고 원하는 유저의 user_idx를 입력하면 DBeaver에서 일치하는 회원의 정보가 출력되게 된다.
만약 DB에 존재하지 않는 user_idx를 검색하게 된다면, 예외처리로 해당유저는 없는유저라고 메세지를 띄워주도록 exception 처리를 했다.
여러명의 회원의 정보를 출력할 수도 있다. User클래스를 List형식으로 받는 메서드를 작성한다.
@GetMapping("/select/list")
public List<User> list() {
return userRepository.findAll();
}
postman에서 해당 주소를 넣고 실행해보면 모든 회원의 정보를 띄워준다.
모든 유저의 데이터를 출력하지 않고 특정개수만큼만 출력할 수도 있다.
size=2로 출력할 유저의 데이터 개수를 2개로 지정하고 출력해 보았다.
@GetMapping("/select/list/page")
public List<User> pageList(@PageableDefault(size = 2) Pageable pageable) {
Page<User> page = userRepository.findAll(pageable); // Page<User>를 리턴하면 페이징 정보까지 볼 수 있음
List<User> user = page.getContent();
return user;
}
변수명 page를 return하게 된다면 페이지의 정보까지도 볼 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 7. 메인화면 만들기 (0) | 2023.02.15 |
---|---|
[블로그프로젝트] 6. JpaRepository 로 데이터 update,delete 해보기 (0) | 2023.02.13 |
[블로그프로젝트] 4. JpaRepository 로 데이터 insert 해보기 (0) | 2023.02.09 |
[블로그프로젝트] 3-1. 테이블생성하기 2 (0) | 2023.02.09 |
[블로그프로젝트] 3. 테이블생성하기 (0) | 2023.02.06 |
댓글