java后端pageHelper分页实现方法
创始人
2024-04-08 09:24:51

文章目录

  • 背景
  • 方法一:mysql的limit进行分页
  • 方法二:使用插件Mybatis-PageHelper(拦截器原理)
    • 1、本质
    • 2.实现步骤
      • 引入依赖
      • 修改application.yml
      • 修改代码
  • 总结


背景

当一次查库数据量较大,不光给数据库带来压力,同时前端渲染页面压力也很大,所以尝试做真分页来减小压力。


方法一:mysql的limit进行分页

SELECT * FROM `t_item_type` limit page,pageSize

在这里插入图片描述
可以看见这是从第一页开始查,查5条数据。

方法二:使用插件Mybatis-PageHelper(拦截器原理)

1、本质

将原来需要人手动写的 sql中 limit page,pageSize变成直接传入参数。

2.实现步骤

引入依赖

spring

com.github.pagehelperpagehelper5.1.2

springBoot

 
com.github.pagehelperpagehelper-spring-boot-starter1.2.10      

修改application.yml

pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql

参数说明:
在这里插入图片描述

修改代码

PageHelper.startPage(1,5);这句话放置的位置是一整条sql查询结果上边,因为插件的原理是在sql上拼接 limit 传进去两个参数 ,比如当前service中逻辑还包含两条sql,此分页将不起作用。

  //这一句一定要放在查出所有数据的上边,第一个数表示pageNum,第二个数表示pageSizePageHelper.startPage(1,5);//这里表示要获取所有的信息ListitemAllInfos  =  itemTypeService.selectAllItemByType(itemType);//转换成分页的形式,这里做改动后返回值于原来相比格式发生变化,要及时调整前端接收数据的格式。PageInfo pageInfo = new PageInfo(itemAllInfos);

总结

工欲善其事,必先利其器。这里做完改动以后还是要多多注意前端格式转换。

相关内容

热门资讯

最新或2023(历届)江苏镇江... 全省中考英语听力口语自动化考试4月25日、26日进行  中国江苏网3月25日讯 昨天,记者从市教育局...
最新或2023(历届)南通中考... 一、考试对象  全市所有初中太阳教育网及报考高一级学校的往届初中毕业生。  二、考试时间  最新或2...
最新或2023(历届)扬州中考... 新闻链接  中考网上报名流程  具有本市初中学籍的初三太阳教育网由学籍所在学校统一办理网上报名手续。...
最新或2023(历届)徐州中考... 中考网上报名 27日开始 本报讯(记者甘晓妹)记者从市招办获悉,3月27日至3月31日,我市进行最新...
最新或2023(历届)南京浦口... 最新或2023(历届)浦口区中考体检