mybatis를 사용하면 사람이 직접 PageMaker 클래스를 작성해야 한다.
JPA에서는 자동으로 페이징 처리가 된다.
페이징 배운다고 시간 낭비 하지 말자.
HomeController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @RequestMapping(value = "/artwork") public String artwork(HttpServletRequest request, HttpServletResponse response, Sort sort) { Map<String, Object> map = new HashMap<>(); map.put("request", request); map.put("repository", postsRepository); map.put("sort", sort); ArtworkTablePrintService artworkTablePrintService = new ArtworkTablePrintService(); Map<String, Object> resultMap = artworkTablePrintService.tablePrint(map); List<Posts> postList = (List<Posts>) map.get("list"); String page = (String) map.get("page"); HttpSession session = request.getSession(); session.setAttribute("list", postList); return page; } | cs |
Service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public Map<String, Object> tablePrint(Map<String, Object> map) { HttpServletRequest request = (HttpServletRequest) map.get("request"); PostsRepository postsRepository = (PostsRepository)map.get("repository"); Sort sort = (Sort) map.get("sort"); int pagenum = Integer.parseInt(request.getParameter("pagenum"));//페이지 번호 int contentnum = Integer.parseInt(request.getParameter("contentnum"));//한 페이지에 몇개 보일지 sort = sort.and(new Sort(Sort.Direction.DESC, "id")); PageRequest pageRequest = new PageRequest(pagenum-1, contentnum, sort); Page<Posts> pagePosts = postsRepository.findAll(pageRequest); List<Posts> postList = pagePosts.getContent(); Map<String, Object> resultMap = new HashMap<>(); resultMap.put("list", postList); resultMap.put("page", "artwork"); return resultMap; } | cs |
핵심은 이곳이다.
1. Sort를 매개변수로 받는다.
2. sort = sort.and(new Sort(Sort.Direction.DESC, "id"));
sort 를 내림차순 , id 로 변경했다.
id 는 db 컬럼 명이다.
PageRequest pageRequest = new PageRequest(pagenum-1, contentnum, sort);
pageRequest 객체에 sort 를 포함시킨다.
Page<Posts> pagePosts = postsRepository.findAll(pageRequest);
pageRequest 객체를 사용해서 쿼리를 보낸다.
List<Posts> postList = pagePosts.getContent();
마지막으로 항목을 가져온다.
'Spring Framework' 카테고리의 다른 글
thymeleaf 타임리프 <a href=javascript 함수에 값 전달하는 방법> </a> (0) | 2018.11.23 |
---|---|
spring sts thymeleaf 페이지 기본 설정 (0) | 2018.11.22 |
github에 있는 gradle , maven 프로젝트를 spring sts( eclipse ) 로 import 하는 법 (0) | 2018.11.20 |
spring boot 1.5.17 버전 jpa 로 데이터 베이스 조작 mysql (0) | 2018.11.15 |
spring boot thymeleaf , 스프링 부트 타임리프 사용하기 (0) | 2018.11.06 |
댓글