Wanna be Brilliant Full-Stack Developer
SpringBoot Blog 만들기 전체 select 및 paging 테스트 본문
Back-End/블로그 만들기 With SpringBoot
SpringBoot Blog 만들기 전체 select 및 paging 테스트
Flashpacker 2023. 3. 7. 00:11
한건의 데이터가 아니라 여러건의 데이터를 리턴 받기를 할것이다!
특별히 파라미터를 할필요는 없다. 전체를 받을것이기 떄문이다!
이렇게 해주면 끝이다. 이렇게하면 전체가 return이 되니까 리턴한 타입 List타입인데
T가 제네릭이니까
이자리가 user가 되어서 바로 return이 될것이다.
현재 데이터를 가져왔다. 시작이 배열로 시작된다. 배열 오브젝트 리턴을 받았다.
배열 오브젝트 안에 json오브젝트가 3개가 들어가 있다.
페이징을 해보려고 하는데 JSP에서 페이징을 하면 로직을 다짜야하는데
스프링부트에는 엄청난 JPA가 강력한 기능을 들고 있는데
findall에보 면 오버로딩이 된 pageable이라는것이 있다. \
애를 어떻게 쓰는가?
여기서 findAll 이 리턴하는게
Page라는것을 리턴을 한다. T는 당연히 user이다.
// 한페이지당 2건에 데이터를 리턴받아 볼 예정
@GetMapping("/dummy/user/page")
public Page<User> pageList(@PageableDefault(size=2, sort="id", direction = Sort.Direction.DESC) Pageable pageable) {
Page<User> users = userRepository.findAll(pageable);
return users;
}
페이징의 기본전략은? 두건씩 데이터를 들고오고 Sort는 아이디로 하고 아이디를 최신순으로 해서 가져올것이라는 것이다
첫번쨰 페이지보는 법은 알고
다음페이지 보는법을 확인해보려고 한다.
주소로 다음페이지를 볼수 있다는데?!
http://localhost:8000/blog/dummy/user?page=0 이렇게 물음표로 쿼리 스트링으로하면 page=으로 하면
첫번쨰가 3,2가 나오고
1이라하면 두번쨰, 2라고 하면 세번쨰 라고 한다.
이렇게 size=1이라고 하면 한페이지에 하나만 나올것이다.
Page<User> users = userRepository.findAll(pageable).getContent(); 이렇게 getContetnt라고하면
List유저를 리턴한다.
유저데이터가 첫번째 데이터인가요? 라고 분기처리를 할 수 있고
isLast라고 하면 마지막 데이터인가요? 라는 처리를 할 수가 있고
페이지라는 클래스가 제공을 한다.
다 제공을 해서 어떤 로직이 다 끝나면 결과는 List를 받아서 이렇게 리턴해주는것이 좋다!
'Back-End > 블로그 만들기 With SpringBoot' 카테고리의 다른 글
SpringBoot Blog 만들기 id로 select 테스트하기 (0) | 2023.03.03 |
---|---|
SpringBoot Blog 만들기 회원가입을 위한 enum 사용법 (1) | 2023.03.03 |
SpringBoot Blog만들기 회원가입을 위한 insert 테스트 (0) | 2023.02.23 |
SpringBoot blog 만들기 Json 사용법 (1) | 2023.02.16 |
SpringBoot Blog 만들기 연관관계의 주인 (0) | 2023.02.15 |