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

内存分页法

现在有个场景,页面需要分页处理,但是后端在查询完数据库后又会进行筛选,就会导致后端的查询数目跟请求的每页条数是不一样。

解决方案:内存分页法

在内存筛选后手动实现分页逻辑,保证返回数量与请求的 pageSize 一致:

@Override
public JSONObject checkByLabelType(XXXDTO req) {JSONObject jsonObject = new JSONObject();// 1. 执行原有查询和筛选逻辑(得到全部已筛选数据)List<XXXVO> filteredList = getFullFilteredList(req); // 2. 手动分页处理int pageNum = req.getPageNum() != null ? req.getPageNum() : 1;int pageSize = req.getPageSize() != null ? req.getPageSize() : 10;int start = (pageNum - 1) * pageSize;// 3. 边界检查if (start >= filteredList.size()) {return Collections.emptyList();}int end = Math.min(start + pageSize, filteredList.size());// 4. 返回分页后的子列表List<XXXVO> pageList = filteredList.subList(start, end);jsonObject.put("total", filteredList.size());jsonObject.put("rows", pageList);return jsonObject;
}private List<XXXVO> getFullFilteredList(XXXDTO req) {// 这里放入原有的全部筛选逻辑(包括设备过滤、标签过滤、时间排序等)// 返回的是完成所有内存筛选后的完整列表
}
方案优点缺点适用场景
内存分页实现简单,数据精准内存压力大数据量小 (<1000条)

相关文章:

  • Windows实时拓展架构-鸿道Intewell-win构型
  • Windows Ubuntu 目录映射关系
  • 在Windows系统中使用C++与Orthanc交互:基于DICOMweb的医学影像应用开发
  • Cribl 中 Parser 扮演着重要的角色 + 例子
  • 【Auto-dl ssh隧道,TensorBoard】
  • FreeRTOS学习笔记【11】-----任务列表
  • 打卡day31
  • 计算机网络基础概念
  • Gas优化利器:Merkle 树如何助力链上数据效率革命
  • ubuntu下docker安装mongodb-支持单副本集
  • 磁盘空间不足,迁移Docker 数据目录
  • 基于自然语言转SQL的BI准确率如何?
  • 《算法笔记》11.8小节——动态规划专题->总结 问题 D: Coincidence
  • linux下jenkins部署安装使用
  • 【图像大模型】Stable Video Diffusion:基于时空扩散模型的视频生成技术深度解析
  • 【HTML-2】HTML 标题标签:构建网页结构的基础
  • 设计模式之备忘录模式
  • 如何使用通义灵码玩转Python - AI编程助手提升效率
  • windows安装WS,实测可行
  • Prompt Tuning:轻量级大模型微调全攻略
  • 上海婚登人聂晶:见证爱情故事开启,也向长久婚姻致敬
  • 中疾控:适龄儿童要及时、全程接种百白破疫苗
  • 又有明星分析师晋升管理层:“白金分析师”武超则已任中信建投证券党委委员
  • 家国万里·时光故事会|从徐光启到徐家汇,一颗甘薯里的家国
  • 这款小孩子最爱的饮料,害处竟大到不敢想象
  • 年内首次存款利率下调启动:3年期、5年期均下调0.25个百分点