物理分页与逻辑分页

物理分页

物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果。

逻辑分页

逻辑分页依赖的是程序员编写的代码。数据库返回的不是分页结果,而是全部数据,然后再由程序员通过代码获取分页数据,常用的操作是一次性从数据库中查询出全部数据并存储到List集合中,因为List集合有序,再根据索引获取指定范围的数据。

使用 java Steam流进行逻辑分页

分页需要计算传入分页的第几页数,查询结果的总条数,总共有多少页,如下代码:

@Service
public class UserServiceImpl implements UserService {@Overridepublic ResponsePage userPage(Integer page, Integer size) {//查出user总数量List<User> userList=userReposity.findAll();//使用Stream流分页  sorted()排序,skip()跳过多少数据,limit()限制取多少条记录List<User> pageResult = userList.stream().sorted(Comparator.comparing(User::getBrith).reversed()).skip((page - 1L) * size).limit(size).collect(Collectors.toList());//记录总条数int nums = userList.size();//计算总共有多少页数int totalPage = (nums % size) > 0 ? nums / size + 1 : nums / size;return new ResponsePage(pageResult,nums,totalPage,size);}}

使用java Steam流进行逻辑分页(内存分页)相关推荐

  1. java Steam流的用法

    java Steam流的用法1 java Steam流的用法2 项目中的流用法不太懂,沾出来大家一路分享,有清楚地可以评论留言.

  2. 记录Java Steam流的一些用法

    基础示例类: Use.java public class User {private String userId;private String userName;private Integer age ...

  3. JAVA—— Steam流

    一. 引言 初识Stream流的作用: 需求:按照下面的要求完成集合的创建和遍历,创建一个集合,存储多个字符串元素  通过下面代码,显然我们清晰的看到使用Stream流更为方便,而使用不同的集合遍历就 ...

  4. Java中Steam流的用法及使用备忘

    文章目录 Java中Steam流的用法及使用备忘 一. 流的常用创建方法 1-1 使用Collection下的 stream() 和 parallelStream() 方法 1-2 使用Arrays ...

  5. Java学习总结:46(内存流)

    内存流 在Java中,针对内存操作提供了以下两组类: 字节内存流:ByteArrayInputStream(内存字节输入流).ByteArrayOutputStream(内存字节输出流): 字符内存流 ...

  6. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误

    我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...

  7. java流与文件——内存映射文件

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--内存映射文件 的相关知识: 0.2)内存映射文件的目的是: 提高访问速度, 缓冲区Bu ...

  8. JAVA IO流(内存流、管道流、打印流)

    1.内存操作流 2.管道流 3.字节.字符转换流 4.字符的编码问题 5.打印流 6.System类对IO的支持 7.对象序列化 内存操作流 FileInputStream 和FileOutputSt ...

  9. java 通用内存分页(List分页)

    自己编写相关工具类 List分页和SQL分页在什么情况下使用? 参考URL: https://www.zhihu.com/question/62593358/answer/1126234241 Jav ...

最新文章

  1. 云炬随笔20180613
  2. 如何无监督地获得一个句子的向量表示?
  3. vue element-ui级联选择器选中后下拉框自动收起
  4. 无序数组求第K大/第K小的数
  5. iOS----集成ijkplayer视频直播
  6. 五大主流数据库深度对比!数据库开发、管理看这篇就够了
  7. Spring Cloud Gray 微服务灰度中间件
  8. 彻底禁止电脑弹出广告的方法(以2345好压为例)
  9. 【GPL和LGPL】【VPlayer不开源】【其他开源的基本都仅是ffmpeg修改部分】
  10. 库存明细帐处理示例(包含结存数).sql
  11. 大盘酝酿反弹中-可以短跑几天
  12. oracle 11g Data Guard物理备份库
  13. 过来人:软件测试自学还是报班好?需要掌握哪些技能?
  14. 网课python程序设计答案_Python程序设计知到网课答案
  15. Android 按两次返回键、长按返回键退出程序
  16. c 语言学习大全 值得收藏的文章
  17. JS逆向 | 某春秋网m3u8数据解密
  18. Leetcode52.Maximum Subarray(贪心与分治)
  19. 基于CNTK实现自定义类库及使用方式(MNIST为例)【附源码】
  20. NLP - TextRank

热门文章

  1. 华为笔试题总结———个公司做团建活动,排成1个M行N列的队形...请按报数顺序输出特战队员的编号列表(N*2的二维数组)
  2. 过敏性鼻炎的药物治疗(摘)
  3. 计算机在讲台上英语,在讲台上是什么意思
  4. JavaScript 入门笔记(案例+截图)
  5. python发邮件不进垃圾箱_如何群发邮件不进入垃圾邮箱
  6. 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
  7. wps打印文章省纸省墨技巧最大限度的节约纸张资源
  8. idea导入外部jar包不可用
  9. nacos —— 控制台默认用户名密码
  10. Kaggle PUBG吃鸡数据集--数据分析可视化