Mybatis分页方法

 使用 Maven

在 pom.xml 中添加如下依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
</dependency>

Example

可以这样调用,PageHelper.startPage(1,10)表示从第一页开始,每页10条记录,返回值为Page<>。

@RestController

public class ProductController {

    @Autowired

    ProductMapper productMapper;



    @RequestMapping("getProduct")

    public Page<Product>  getProduct(){

        PageHelper.startPage(1,10);

        Page<Product> productList = (Page<Product>) productMapper.selectAll();

        return productList;

    }

}

这是直接通过mapper获取DO数据可以直接使用,List<>可以被直接强转为Page<>。

如果要转换为DTO或VO,需要通过下面的方式

 1 @RequestMapping("getProduct")
 2 public PageInfo<ProductDTO>  getProduct(){
 3     PageHelper.startPage(1,10);
 4 
 5     List<ProductDTO> productDTOS = new ArrayList<>();
 6     List<Product> productList = productMapper.selectAll();
 7     PageInfo<Product> pageInfo = new PageInfo<>(productList);
 8 
 9     for (Product product : productList) {
10         ProductDTO productDTO = new ProductDTO();
11         BeanUtils.copyProperties(product,productDTO);
12         productDTOS.add(productDTO);
13     }
14 
15     PageInfo pageResult = new PageInfo(productDTOS);
16     return pageResult;
17 }

返回值为PageInfo<>类型,因为List<DTO>为ArrayList类,不能直接转为Page<>,所以放在PageInfo<>中。

前端取list中的内容即可,其余为参数信息。

PageHelper.startPage 静态方法调用

除了 PageHelper.startPage 方法外,还提供了类似用法的 PageHelper.offsetPage 方法。

在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage 静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。

原文地址:https://www.cnblogs.com/tentacion/p/11376752.html