当前位置: 首页 > article >正文

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]]


http://www.kler.cn/a/510374.html

相关文章:

  • 将n变为一个可以被表示为2^{a}+2^{b}的正整数m
  • owasp SQL 注入-03 (原理)
  • 【论文笔记】SmileSplat:稀疏视角+pose-free+泛化
  • Web小练习01
  • 第十一章 图论
  • Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
  • 令牌主动失效机制实现——Redis登录优化
  • 基于 WEB 开发的房屋中介租赁销售系统设计与实现
  • Unity中实现伤害跳字效果(简单好抄)
  • springboot基于微信小程序的智慧乡村政务服务系统
  • 大数据治理:提升数据质量与合规性,助力企业数字化转型
  • 【Linux系统编程】—— 深入理解Linux进程优先级与调度机制
  • Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
  • 3D 视觉语言推理中的态势感知
  • “提升大语言模型推理与规划能力的策略:思维链提示与由少至多提示”
  • 数据库基础练习1(创建表,设置外键,检查,不为空,主键等约束)安装mysql详细步骤
  • ROS通信机制全解析
  • 免签支付工具分享
  • Redis延迟队列详解
  • Mysql InnoDB B+Tree是什么?
  • Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法
  • Git下载安装
  • C# 中的 HashSet<T>
  • Java调用C/C++那些事(JNI)
  • 【算法】算法基础课模板大全——第二篇
  • 各种获取数据接口