自学内容网 自学内容网

PageHelper快速使用

依赖

<!--分页插件PageHelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>

示例

/**  
* 封装分页结果  
*/
@AllArgsConstructor  
@NoArgsConstructor  
@Data  
public class PageResult<T> {  
    // 总记录数  
    private Long total;  
  
    // 当前页的数据  
    private List<T> rows;  
}
@GetMapping("/findDetail")  
public PageResult<BookDetailResponse> queryDetailByName(@RequestBody Request<BookDetailQueryRequest> request) {  
  
    PageResult<BookDetailResponse> list = bookService.findDetail(request.getParam());  
    return list;  
}
PageResult<BookDetailResponse> findDetail(BookDetailQueryRequest request);
@Override  
public PageResult<BookDetailResponse> findDetail(BookDetailQueryRequest request) {  
// 设置分页参数
    PageHelper.startPage(request.getPageRequest().getPageNo(), request.getPageRequest().getPageSize());  

// 开始查询
    List<BookDetailResponse> list = bookMapper.findDetail(request.getName()); 

// PageResult需要total,pageHelper会自动查询并封装在一个Page对象中
    Page<BookDetailResponse> p = (Page<BookDetailResponse>) list;  
  
    return new PageResult<>(p.getTotal(), p.getResult());  
}

PageResult需要total参数, pageHelper会自动查询并封装在一个Page对象中, 所以需要接收一下, 那为什么能强转呢? 点进page源码,发现他继承了ArrayList, 而ArrayList又继承了List, 所以mapper查到的list已经是一个page类型了

依赖

<!--分页插件PageHelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>

示例

/**  
* 封装分页结果  
*/
@AllArgsConstructor  
@NoArgsConstructor  
@Data  
public class PageResult<T> {  
    // 总记录数  
    private Long total;  
  
    // 当前页的数据  
    private List<T> rows;  
}
@GetMapping("/findDetail")  
public PageResult<BookDetailResponse> queryDetailByName(@RequestBody Request<BookDetailQueryRequest> request) {  
  
    PageResult<BookDetailResponse> list = bookService.findDetail(request.getParam());  
    return list;  
}
PageResult<BookDetailResponse> findDetail(BookDetailQueryRequest request);
@Override  
public PageResult<BookDetailResponse> findDetail(BookDetailQueryRequest request) {  
// 设置分页参数
    PageHelper.startPage(request.getPageRequest().getPageNo(), request.getPageRequest().getPageSize());  

// 开始查询
    List<BookDetailResponse> list = bookMapper.findDetail(request.getName()); 

// PageResult需要total,pageHelper会自动查询并封装在一个Page对象中
    Page<BookDetailResponse> p = (Page<BookDetailResponse>) list;  
  
    return new PageResult<>(p.getTotal(), p.getResult());  
}

PageResult需要total参数, pageHelper会自动查询并封装在一个Page对象中, 所以需要接收一下, 那为什么能强转呢? 点进page源码,发现他继承了ArrayList, 而ArrayList又继承了List, 所以mapper查到的list已经是一个page类型了

![[attachments/Pasted image 20250119235619.png]]


原文地址:https://blog.csdn.net/Hinton_/article/details/145250300

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!