依赖
<!--分页插件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类型了