当前位置: 首页 > news >正文

分页查询数据重复的问题 (分页时数据库插入数据导致)

参考:

https://blog.csdn.net/desongzhang/article/details/124941189

参考之后 自己遇到的坑+解决办法

一、问题描述

分页时,同时在数据库中添加数据,导致第n页和第n+1页有部分数据重复(重复条数和查询分页时的添加的数据量有关)

二、解决办法

分页的过程中,插入了一条记录,导致再查询下一页的时候,查出来上一页的记录,那么,我思考,我可不可以不去查询他新增的这一条记录。那么这样,就查询不到别人新增的这条记录了。

那么需要的条件就出来了: 数据库表要有创建时间的这么一个字段|实际项目时,根据业务需求的所用的排序条件。如:order by create_time desc

那么解决思路就出来了,首先是要前端进行配合。那么其解决思路为:

1、分页接口中新增接收参数:排序条件的上一页最后一条记录的值。如:上一页最后一条记录的创建时间:lastRecordCreateTime

2、分页接口的实现方法中新增第一步中的条件。如:where create_time> lastRecordCreateTime

3、 网页端或客户端访问分页接口时,将排序条件的上一页最后一条记录的值传到分页接口中。第一页时,“排序条件的上一页最后一条记录的值”如:lastRecordCreateTime 可不传。后端使用该参数时,需要判断null.

坑1:完成上述工作后,分页不会出现相同数据,但第二页及其往后的数据查询出来 不是正常的分页数据,而是在 前端传的分页参数(where create_time> lastRecordCreateTime)条件下的第N页,所以,

n+1页时:需要后端设置当前页码为1

//分页时,参数有上一页的时间参数查询条件时,需要将页码设置为第一页
if (request.getPageIndex() > 1 && StringUtils.isNotEmpty(request.getCreateDate())){
            request.setPageIndex(1);
        }

相关文章:

  • 域名网站电话/seo在线短视频发布页
  • wordpress edubase/seo属于什么
  • 网站建设策划文案/百度本地惠生活推广
  • 中山有哪些网站建立公司/百度收录查询网址
  • 微信网站开发语言/怎么样免费做网站
  • 报名网站怎么做/广州新闻报道
  • Unity 简易音乐播放系统
  • Android | Fragment
  • 代码随想录算法训练营第13天 239.滑动窗口最大值、347. 前 K 个高频元素
  • 2023-01-16 Dubbo+Zookeeper集成
  • 我的周刊(第074期)
  • WuThreat身份安全云-TVD每日漏洞情报-2023-01-16
  • 【Python学习】条件和循环
  • 寒假集训一期总结(一)–––思维训练
  • Rpc了解
  • 【开发心得】Spring Mail发送邮件
  • 编译基于armV8架构的opencv,并在rock3a开发板上运行
  • Unity | 序列化(Serialized)和反序列化(NonSerialized)是什么意思