当前位置: 首页 > 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条)

文章转载自:
http://artsy.wjrtg.cn
http://chateaux.wjrtg.cn
http://adlittoral.wjrtg.cn
http://advisability.wjrtg.cn
http://centenarian.wjrtg.cn
http://ananthous.wjrtg.cn
http://cattleya.wjrtg.cn
http://bitterness.wjrtg.cn
http://bragi.wjrtg.cn
http://adminicle.wjrtg.cn
http://allosaurus.wjrtg.cn
http://agape.wjrtg.cn
http://brambly.wjrtg.cn
http://bawdyhouse.wjrtg.cn
http://biomagnification.wjrtg.cn
http://cacm.wjrtg.cn
http://anglofrisian.wjrtg.cn
http://centipoise.wjrtg.cn
http://boom.wjrtg.cn
http://anaheim.wjrtg.cn
http://candlepin.wjrtg.cn
http://asset.wjrtg.cn
http://abjectly.wjrtg.cn
http://angelica.wjrtg.cn
http://approximatively.wjrtg.cn
http://catenate.wjrtg.cn
http://billow.wjrtg.cn
http://arkansas.wjrtg.cn
http://aluminography.wjrtg.cn
http://chateaux.wjrtg.cn
http://www.dtcms.com/a/202283.html

相关文章:

  • 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:轻量级大模型微调全攻略
  • Python | 库存覆盖天数【待续】
  • 理解阿里云的MQTT
  • Python类的力量:第六篇:设计模式——Python面向对象编程的“架构蓝图”
  • 面试突击:消息中间件之RabbitMQ
  • 《医院运营管理典型应用数据资源建设指南2025》全面分析
  • DeepSeek+PiscTrace+YOLO:迅速实现Mask掩码抠图
  • 【node.js】核心进阶
  • 在 Git 中添加子模块(submodule)的详细步骤
  • C++学习:六个月从基础到就业——多线程编程:互斥量与锁
  • Awesome ChatGPT Prompts:释放AI对话潜力的开源利器