SpringBoot后端篇(五)加入Mybatis分页插件pagehelper实现分页

mac2025-02-17  9

写分页时,需要先写查询count的语句,再写一个查询分页的语句,利用pagehelper能快速实现分页

pom中添加依赖

<!-- pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency>

application.yml添加配置

# pagehelper pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql

在config目录下新建PageRequest、PageResult、PageUtils类

PageRequest

package com.example.springboot.config; /** * 分页请求 */ public class PageRequest { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; public int getPageNum() { return pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } }

PageResult

package com.example.springboot.config; import java.util.List; /** * 分页返回结果 */ public class PageResult { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; /** * 记录总数 */ private long totalSize; /** * 页码总数 */ private int totalPages; /** * 数据模型 */ private List<?> content; public int getPageNum() { return pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public long getTotalSize() { return totalSize; } public void setTotalSize(long totalSize) { this.totalSize = totalSize; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public List<?> getContent() { return content; } public void setContent(List<?> content) { this.content = content; } }

PageUtils

package com.example.springboot.config; import com.github.pagehelper.PageInfo; public class PageUtils { /** * 将分页信息封装到统一的接口 * @param pageRequest * @param page * @return */ public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) { PageResult pageResult = new PageResult(); pageResult.setPageNum(pageInfo.getPageNum()); pageResult.setPageSize(pageInfo.getPageSize()); pageResult.setTotalSize(pageInfo.getTotal()); pageResult.setTotalPages(pageInfo.getPages()); pageResult.setContent(pageInfo.getList()); return pageResult; } }

修改之前代码,加入分页

SysUserMapper.xml

<select id="findPage" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from sys_user </select>

SysUserMapper

List<SysUser> findPage();

SysUserService

PageResult findPage(PageRequest pageRequest);

SysUserServiceImpl

@Override public PageResult findPage(PageRequest pageRequest) { return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest)); } private PageInfo<SysUser> getPageInfo(PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); PageHelper.startPage(pageNum, pageSize); List<SysUser> sysUsers = sysUserMapper.findPage(); return new PageInfo<SysUser>(sysUsers); }

SysUserController

@PostMapping(value="/findPage") public Object findPage(@RequestBody PageRequest pageQuery) { return sysUserService.findPage(pageQuery); }

启动后,访问http://localhost:8080/swagger-ui.html#/

依次点击sys-user-controller--------POST----------Try it out,输入参数后点击Execute

最新回复(0)