Controller
//http://localhost:8001/blog/dummy/users
@GetMapping("/dummy/users")
public List<User> list(){
return userRepository.findAll(); // 전체행 조회
}
값은 너무 잘 나오는데.. 가독성이 너무 떨어진다.
JSON VIEW 라는 크롬 확장 프로그램을 설치하자
JSONView
브라우저에서 JSON 문서를 보세요.
chrome.google.com
크롬에 추가한 후 새로고침을 하면 매우 이쁘게 나온다.
Pagnation 처리가 된 Select
@GetMapping("/dummy/user")
public Page<User> pageList(@PageableDefault(size = 2, sort = "id", direction = Sort.Direction.DESC) Pageable pageable){
// 결과 값을 2건씩 불러오고, 정렬은 id를 기준으로 정렬하고, 최신순으로 불러온다.
Page<User> users = userRepository.findAll(pageable);
return users;
}
두개의 데이터가 잘 나온다.
그럼 두번째 페이지도 잘 나오는지 확인해보자
두번째 데이터값을 확인하는 방법은 쿼리스트링을 사용하면 된다.
http://localhost:8001/blog/dummy/user?page=1 // 두번째 페이지
// page=0 부터 시작이므로 page=2 가 두번째 페이지가 된다.
http://localhost:8001/blog/dummy/user?page=0 // 첫번째 페이지
http://localhost:8001/blog/dummy/user? // 첫번째 페이지
만약 페이징정보를 출력하고 싶지 않다면 getContent()를 이용해서 제외하고 출력할 수 있다.
@GetMapping("/dummy/user")
public List<User> pageList(@PageableDefault(size = 2, sort = "id", direction = Sort.Direction.DESC) Pageable pageable){
// 결과 값을 2건씩 불러오고, 정렬은 id를 기준으로 정렬하고, 최신순으로 불러온다.
Page<User> pagingUser = userRepository.findAll(pageable);
List<User> users = pagingUser.getContent();
return users;
}
분기문도 처리 할 수 있다.
@GetMapping("/dummy/user")
public List<User> pageList(@PageableDefault(size = 2, sort = "id", direction = Sort.Direction.DESC) Pageable pageable){
Page<User> pagingUser = userRepository.findAll(pageable);
if(pagingUser.isFirst()) {
// 첫번째 페이지 일 경우
}
if(pagingUser.isLast()) {
// 마지막 페이지 일 경우
}
List<User> users = pagingUser.getContent();
return users;
}