您的位置:首页 > 娱乐 > 八卦 > Java编程语言,使用时间戳机制实现分页查询的示例

Java编程语言,使用时间戳机制实现分页查询的示例

2024/12/23 5:10:48 来源:https://blog.csdn.net/zhuganlai168/article/details/142093603  浏览:    关键词:Java编程语言,使用时间戳机制实现分页查询的示例

一、背景

分页查询一般的实现方式是:输入当前页码page以及每页数量size,再加上其他的查询条件。
比如:查询第一页,page=0, size=10, 如果返回的数据集小于10,说明当前页是最后一页。
反之,如果有下一页,则page++,size不变。

这当然是常规的一种分页查询实现。

本文我们将要通过时间戳机制实现另外一种分页查询。

二、时间戳机制

要想实现时间戳机制的分页查询,前提是分页查询的排序条件是创建时间或更新时间。
这里以更新时间为例:

  • 查询第一页,按更新时间倒序排列,时间戳传0
  • 当要上拉查询下一页的时候,时间戳传最后一条记录的更新时间。
  • 当下拉刷新的时候,时间戳则传入第一条记录的更新时间。

这种分页查询的入参包括

  • 1、type: 0-下拉(上一页); 1-上拉(下一页)
  • 2、timestamp: 时间戳,可能取最后第一条记录的更新时间,也可能是第一条记录的更新时间。
  • 3、每页数量size
  • 4、其他查询条件

三、分页查询的实现

伪代码

if (type == 0) {where updateTime > ${timestamp} and ...(其他查询条件)
} else if (type == 1) {where updateTime < ${timestamp} and ...(其他查询条件)
}// 按更新时间倒序排列
// 每页数量
order by updateTime desc limit {size}

在这里插入图片描述

四、总结

这种分页查询,以时间戳为增量更新的标记,好处是,不用去组装分页语句,只需要传入每页数量,不用根据当前页码和每页数量而计算。

使用时,需要注意的是,如果记录的更新时间频繁更新,会导致结果一会在当前页,一会在上一页。(因为在你刷新页面的时候,该记录正好更新了)

所以,客户端不要缓存上一次的查询结果集,如果要,那也得区分用户是下拉刷新还是上拉查询。

总之,要小心同一个记录被重复出现在次增量查询的结果集里。

如果是以创建时间为准,然后时间戳对比创建时间来增量查询,那么就不会出现这个问题了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com