最近在做需求的过程中遇到几个需要分页查询的需求,我也对分页有了较深的了解。分页一般分为两种一种是直接在sql中分页,一种是在内存中分页。本文仅针对内存中分页做记录。 第一种 如果是一个查询接口,向接口中传入page,和size(p
最近在做需求的过程中遇到几个需要分页查询的需求,我也对分页有了较深的了解。分页一般分为两种一种是直接在sql中分页,一种是在内存中分页。本文仅针对内存中分页做记录。
第一种
如果是一个查询接口,向接口中传入page,和size(page默认值1,size默认值10)即可,返回参数是GitHub的PageInfo,里面在放实际返回类型。
进入实现层,使用PageHelper,并调用pageQuery方法即可完成分页,以下为Pagehelper的具体代码 。(但需注意,此方法只适用于从数据库中直接查出的数据,如果将查出的数据进行二次封装则会导致分页失败)
import com.github.pagehelper.Page;import lombok.experimental.UtilityClass;import org.springframework.beans.BeanUtils;import org.springframework.WEB.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import java.util.List;import java.util.Objects;import java.util.function.Supplier;@UtilityClasspublic class PageHelper { public static PageInfo pageQuery(Supplier> supplier) { ServletRequestAttributes attributes = (ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes(), "无法获取request"); Page
第二种
这种方法是我第一次使用,把入参的page和size封装成了对象PageDomain
PageDomain代码如下
@Datapublic class PageDomain1 { private Integer page = 1; private Integer limit = 10; public Integer start() { return (this.page - 1) * this.limit; } public Integer end() { return this.page * this.limit; }}
这是控制层代码
这是实现层代码,这里的resultList,是我们先从数据库中查出来的结果集,再用PageUtils的Startpage方法进行分页操作,最后组装PageInfo返回体
下面是PageUtils的代码
来源地址:https://blog.csdn.net/Oliver_Liuqifan/article/details/128940898
--结束END--
本文标题: Java分页查询的几种实现方法
本文链接: https://www.lsjlt.com/news/388977.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0