Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- viro-community
- ssafy job fair
- 스프링
- SSAFY
- maven
- 스프링부트
- 부울경캠퍼스
- viro
- connetion refused
- 백준
- MySQL
- viroreact
- IntelliJ
- 싸피셜
- 싸피
- boj
- Lombok
- 알고리즘
- 싸피12기
- ssafy 12기
- SSAFY 11기
- react
- Security
- springboot
- Spring
- 회원가입
- arduino uno wifi rev2
- React Native CLI
- 리액트
- SSAFYcial
Archives
- Today
- Total
log
[Spring Boot] 게시글 페이징 기법 정리 본문
❓ 페이징 기법
수많은 자료 데이터를 일정 크기로 나누어서, 나누어진 하나하나의 집단에 페이지 번호를 부여하는 방식
- 정해진 개수와 원하는 영역의 게시판 데이터를 출력하여 가독서오가 자원 낭비 문제 개선
1. Repository
Page<FreePost> findAll(Pageable pageable);
pageable로 받은 값을 토대로 페이징 하여 Page<FreePost>를 리턴
- pageable
getPageNumber(), getPageSize() 등 페이징을 구현할 때 필요한 값들을 구현할 수 있도록 도와주는 메서드들이 있음
2. Service
public Page<FreePost> getPageList(int page) {
Pageable pageable = PageRequest.of(page, 10); // 조회할 페이지 번호(0부터 시작), 한 페이지에 보여줄 최대 개수
return this.freePostRepository.findAll(pageable);
}
조회할 페이지 번호와 한 페이지에 보여줄 최대 게시글 개수를 매개변수로 넘겨줘서 Pageable 객체를 리턴 받는다
이후 앞서 작성한 Repository.findAll 메서드에 pageable을 넘겨준다
3. Controller
@ResponseStatus(HttpStatus.CREATED)
@GetMapping("/{page}")
public Page<FreePost> getFreePostList(@PathVariable int page) {
Page<FreePost> paging = freePostService.getPageList(page);
return paging;
}
시작할 페이지 번호를 url로 입력받고, Service를 호출해서 page 값을 넘겨준다
이후 리턴 받은 Page<FreePost>를 클라이언트로 전송한다
4. 결과 확인
성공!
페이징 정보도 같이 출력됨
'SpringBoot' 카테고리의 다른 글
[Springboot] '심볼 'lombok'를 해결할 수 없습니다' 오류 해결 (0) | 2023.10.31 |
---|---|
[Springboot] swagger 적용 및 발생 오류 정리 (0) | 2023.09.20 |
[Spring boot] NullPointException 오류 해결 (0) | 2023.08.11 |
[Spring boot] BCryptPasswordEncoder 사용할 때마다 인코딩 결과가 달라질 때 (0) | 2023.08.02 |
[Spring boot] 게시글 수정 기능 구현하면서 발생한 오류 정리 (0) | 2023.07.26 |