北京市住房城乡建设行业从业人员考务网站,在线爬取网页源码,江苏建安建设有限公司网站,全渠道推广策划方案模板【写在前面】
项目的后台管理系统需要展示所有资源信息#xff0c;select * 虽然方便但数据量过于庞大会严重降低查找效率#xff0c;页面加载慢#xff0c;用户体验差。分页自然是必要选择#xff0c;但原生的方法过于繁杂。MyBatis的分页插件PageHelper和SpringBoot的集…【写在前面】
项目的后台管理系统需要展示所有资源信息select * 虽然方便但数据量过于庞大会严重降低查找效率页面加载慢用户体验差。分页自然是必要选择但原生的方法过于繁杂。MyBatis的分页插件PageHelper和SpringBoot的集成是更好的选择它的使用非常简单开发更为高效。
代码如下
一、pom文件导入依赖
dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.2.5/version/dependency二、配置application.yml
##pagehelper分页插件
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: countcountSql
三、编写PageRequest、PageResult 实体类
package com.jxnu.os.model;/*** author xiao*/
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;}
}
package com.jxnu.os.model;import java.util.List;/*** author xiao*/
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;}
}
四、service层 编写findPage、PageInfo方法 public PageResult findPage(PageRequest pageRequest,Integer p_id) {return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest,p_id));}/*** 调用分页插件完成分页* param pageRequest* return*/private PageInfoResource getPageInfo(PageRequest pageRequest,Integer p_id) {int pageNum pageRequest.getPageNum();int pageSize pageRequest.getPageSize();PageHelper.startPage(pageNum, pageSize);ListResource resources resourceMapper.selectPage(p_id);return new PageInfoResource(resources);}五、controller层编写findPage方法
PostMapping(value/findPage)public Object findPage(RequestBody(required false) PageRequest pageQuery,Integer p_id) {//System.out.println(pageQuery.getPageNum());//System.out.println(p_id);return resourceService.findPage(pageQuery,p_id);}ok ,大功告成