spring

[spring Boot] 페이징처리(feat. Mybatis, PageHelper)

seulhasony 2023. 12. 23. 19:58

페이징처리를 쉽게 하기 위해서 여기저기 찾아 보았는데

한 번에 깔끔하게 정리된 포스팅이 없는 것 같아 포스팅을 하기로 마음 먹었다!

 

할 게 너무 많아서 넘어갈까 했지만...급할수록 꼼꼼하고 차근차근하자는 마음으로 포스팅을 시작하겠다!

 

1.의존성 주입

dependencies {
	implementation 'com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0'
}

 

2.mapper

public List<Product> getProductList() throws Exception;

 

3.service

이 부분이 제일 중요하다!

    public PageInfo<Product> getProducts(int pageNo) throws Exception{
        PageHelper.startPage(pageNo, 10);
        return PageInfo.of(productMapper.getProducts(),pageNo);
    }

 

4.controller

    @GetMapping("/list")
    public String getProducts(@RequestParam(required = false) String userName,
                              @RequestParam(defaultValue = "1") int pageNum, Model model) throws Exception {

        PageInfo<Product> pageInfo = productService.getProducts(pageNum);

        model.addAttribute("pageInfo",pageInfo);
        model.addAttribute("userName",userName);

        return "product/list";
    }

 

5. Product

여기서 product는 DB에서 조회된 데이터를 담아오는 DTO 엔티티정도로 생각해주시면 됩니다!!

 

PageHelper는 service단만 변경하면 돼서 사용이 정말 편리했다!