当前位置:   article > 正文

PageHelper依赖框架使用

pagehelper依赖

引入依赖

  1. <!-- PageHelper:专用于MyBatis的分页框架 -->
  2. <dependency>
  3. <groupId>com.github.pagehelper</groupId>
  4. <artifactId>pagehelper-spring-boot-starter</artifactId>
  5. <version>1.3.0</version>
  6. </dependency>

测试PageHelper

  1. @SpringBootTest
  2. public class PageHelperTests {
  3. @Autowired
  4. TagMapper mapper;
  5. @Test
  6. void listTagType() {
  7. Integer pageNum = 2; // 页码,从2开始顺序编号
  8. Integer pageSize = 2; // 每页多少条数据
  9. PageHelper.startPage(pageNum, pageSize); // 设计分页参数
  10. List<?> list = mapper.listTagType(); // 【注意】必须紧随“PageHelper.startPage()”之后,否则,可能产生线程安全问题
  11. System.out.println(list);
  12. for (Object item : list) {
  13. System.out.println("列表项:" + item);
  14. }
  15. PageInfo<?> pageInfo = new PageInfo<>(list);
  16. System.out.println(pageInfo);
  17. }
  18. }

 实现解耦:

1·创建PageData类

  1. @Data
  2. @Accessors(chain = true)
  3. public class PageData<T> implements Serializable {
  4. /**
  5. * 每页记录数
  6. */
  7. private Integer pageSize;
  8. /**
  9. * 记录总数
  10. */
  11. private Long total;
  12. /**
  13. * 当前页码
  14. */
  15. private Integer currentPage;
  16. /**
  17. * 最大页码
  18. */
  19. private Integer maxPage;
  20. /**
  21. * 数据列表
  22. */
  23. private List<T> list;
  24. }

2·创建工具转化类:

  1. public class PageInfoToPageDataConverter {
  2. /**
  3. * 将PageHelper框架中的PageInfo类型对象转换成自定义的PageData类型对象
  4. *
  5. * @param pageInfo PageInfo对象
  6. * @param <T> PageInfo对象中的列表数据中的元素数据的类型
  7. * @return 自定义的PageData类型的对象
  8. */
  9. public synchronized static <T> PageData<T> convert(PageInfo<T> pageInfo) {
  10. PageData<T> pageData = new PageData<>();
  11. pageData.setPageSize(pageInfo.getPageSize())
  12. .setTotal(pageInfo.getTotal())
  13. .setCurrentPage(pageInfo.getPageNum())
  14. .setMaxPage(pageInfo.getPages())
  15. .setList(pageInfo.getList());
  16. return pageData;
  17. }
  18. }

3·接口中的方法:

    PageData<TagTypeListItemVO> listTagType(Integer pageNum, Integer pageSize);

4·调用转换工具类中的静态方法实现:

  1. @Override
  2. public PageData<TagTypeListItemVO> listTagType(Integer pageNum, Integer pageSize) {
  3. log.debug("开始执行【查询标签类别列表】,页码:{},每页记录数:{}", pageNum, pageSize);
  4. PageHelper.startPage(pageNum, pageSize);
  5. List<TagTypeListItemVO> tagTypeList = tagMapper.listTagType();
  6. PageInfo<TagTypeListItemVO> pageInfo = new PageInfo<>(tagTypeList);
  7. PageData<TagTypeListItemVO> pageData = PageInfoToPageDataConverter.convert(pageInfo);
  8. return pageData;
  9. }

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/88360
推荐阅读
相关标签
  

闽ICP备14008679号