赞
踩
引入依赖
- <!-- PageHelper:专用于MyBatis的分页框架 -->
- <dependency>
- <groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper-spring-boot-starter</artifactId>
- <version>1.3.0</version>
- </dependency>
测试PageHelper
- @SpringBootTest
- public class PageHelperTests {
-
- @Autowired
- TagMapper mapper;
-
- @Test
- void listTagType() {
- Integer pageNum = 2; // 页码,从2开始顺序编号
- Integer pageSize = 2; // 每页多少条数据
- PageHelper.startPage(pageNum, pageSize); // 设计分页参数
- List<?> list = mapper.listTagType(); // 【注意】必须紧随“PageHelper.startPage()”之后,否则,可能产生线程安全问题
- System.out.println(list);
- for (Object item : list) {
- System.out.println("列表项:" + item);
- }
-
- PageInfo<?> pageInfo = new PageInfo<>(list);
- System.out.println(pageInfo);
- }
-
- }
实现解耦:
1·创建PageData类
- @Data
- @Accessors(chain = true)
- public class PageData<T> implements Serializable {
-
- /**
- * 每页记录数
- */
- private Integer pageSize;
- /**
- * 记录总数
- */
- private Long total;
- /**
- * 当前页码
- */
- private Integer currentPage;
- /**
- * 最大页码
- */
- private Integer maxPage;
- /**
- * 数据列表
- */
- private List<T> list;
- }
2·创建工具转化类:
- public class PageInfoToPageDataConverter {
-
- /**
- * 将PageHelper框架中的PageInfo类型对象转换成自定义的PageData类型对象
- *
- * @param pageInfo PageInfo对象
- * @param <T> PageInfo对象中的列表数据中的元素数据的类型
- * @return 自定义的PageData类型的对象
- */
- public synchronized static <T> PageData<T> convert(PageInfo<T> pageInfo) {
- PageData<T> pageData = new PageData<>();
- pageData.setPageSize(pageInfo.getPageSize())
- .setTotal(pageInfo.getTotal())
- .setCurrentPage(pageInfo.getPageNum())
- .setMaxPage(pageInfo.getPages())
- .setList(pageInfo.getList());
- return pageData;
- }
-
- }
3·接口中的方法:
PageData<TagTypeListItemVO> listTagType(Integer pageNum, Integer pageSize);
4·调用转换工具类中的静态方法实现:
- @Override
- public PageData<TagTypeListItemVO> listTagType(Integer pageNum, Integer pageSize) {
- log.debug("开始执行【查询标签类别列表】,页码:{},每页记录数:{}", pageNum, pageSize);
- PageHelper.startPage(pageNum, pageSize);
- List<TagTypeListItemVO> tagTypeList = tagMapper.listTagType();
- PageInfo<TagTypeListItemVO> pageInfo = new PageInfo<>(tagTypeList);
- PageData<TagTypeListItemVO> pageData = PageInfoToPageDataConverter.convert(pageInfo);
- return pageData;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。