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类型了