《重启8》
技术分享-使用com.github.pagehelper开发后端(springboot)跟前端(vue)对接实现查询分页
前言
虽然不太想承认,博主在出来实习才发现以前实现的分页查询是非常的low,low,low,要不是让前端全部自己处理要不就是让后端全部自己处理,但是承认并学习才能使人进步嘛,现在跟大家分享一波,真正开发中前后端分离的项目怎么处理分页!!!
实现思路
1.首先要搞清楚两边要什么参数和返回值
前端参数:页数,条数
后端返回值:对应的具体查询信息和不进行分页的查询总数
2.两边得到对应的值要做什么操作
后端:得到对应的信息进行编辑sql脚步进行分页查询得到查询信息,并跟不进行分页查询的总条数一起返回给前端。
前端:先拿到总条数进行分页,在获取对应的页数的查询信息。
具体代码
ps:只实现后端代码,前端可以通过postman进行前后端测试
- pom
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
2.mapper.xml
ps:sql脚本不用进行分页查询,用查询插件就行
<select id="deFormSelectByuserId" parameterType="String" resultType="com.bs.user.param.UserDeFormParm">
select * from wx_cp_demand_form where user_id=#{userId}
</select>
3.serviceimpl
@Override
public AjaxResult deFormSelectByuserId(UserDeFormParm userDeFormParm) {
LoginUser user = tokenService.getLoginUser();
String userId= user.getUserid();
PageHelper.startPage(Integer.valueOf(userDeFormParm.getPageNum()), Integer.valueOf(userDeFormParm.getPageSize()));
PageInfo<List<UserDeFormParm>> pageInfo = (PageInfo<List<UserDeFormParm>>) new PageInfo(userDeFormDao.deFormSelectByuserId(userId));
return AjaxResult.success(pageInfo);
}
ps:PageInfo实体类中包含了查询信息和总页数、页号、页积等