大多数开发人员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了。
很多时候各种条件查询完了又做一些其他的业务处理,然后就导致分页不好用了。
所以查询的时候,不能做分页,把数据都查询出来,然后处理业务逻辑,处理完了之后再进行分页。
针对于想精简自己的分页代码 或者 不想使用PageHelper分页插件的。

如何使用Mybatis分页插件 - PageHelper

给大家提供一段封装的List分页的方法

此方法适用于MySQL数据库,其他数据库(CirroData,DM等)可以参考修改计算公式。

import java.util.ArrayList;
import java.util.List;public class ListPageUtils {/**** @param list  要分页的集合* @param pageNo    第几页* @param pageSize  每页条数* @return      分页集合对象*/public static List page(List list, int pageNo, int pageSize){List result = new ArrayList();if (list != null && list.size() > 0) {int allCount = list.size();int pageCount = (allCount + pageSize - 1) / pageSize;if (pageNo >= pageCount) {pageNo = pageCount;}int start = (pageNo - 1) * pageSize;int end = pageNo * pageSize;if (end >= allCount) {end = allCount;}for (int i = start; i < end; i++) {result.add(list.get(i));}}return (result.size() > 0) ? result : null;}
}

使用的时候很简单,可以参考下面类似的方法去使用。

@GetMapping("testPage2")public List testPage2() {List list = new ArrayList<>();list.add("list");list.add("list2");list.add("list3");list.add("list4");list.add("list5");List listPage = ListPageUtils.page(list,2,3);return listPage;}

使用方法总结:

  1. 可以直接固定页码和每页条数。如上面代码所示。(这针对于业务需求固定的情况下)
  2. 可以把数据当成入参去传递,由前端去传参。(更推荐这种写法)
@GetMapping("test")
public List testPage2(@RequestParam int pageNo, @RequestParam int pageSize) {'List list = testService.listAll();// ------- 模拟代码...//从数据中查出的listList listPage = ListPageUtils.page(list,pageNo,pageSize);return listPage;
}

结合 sql 的 limit 去使用即可

经典好用的list分页方法相关推荐

  1. 新版数据库分页方法(Sql server2012)

    1. ROW_NUMBER() 的分页方法 dbcc freeproccache dbcc dropcleanbuffers set statistics time on set statistics ...

  2. sql server两种分页方法

    方法一: --分页方法一 select top 10 OrderID,CustomerID, EmployeeID,OrderDate,ShippedDate,ShipName,ShipAddress ...

  3. Sql Server 2012 分页方法分析(offset and fetch)

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中  offse ...

  4. Oracle、SQL Server、MySQL分页方法

    测试用例:查询TEST_TABLE表中TEST_COLUMN列的第10-20条数据 1,Oracle分页方法 [sql] view plain copy   SELECT A.* FROM ( SEL ...

  5. mysql 高效分页查询_PostgreSQL、MySQL高效分页方法探讨

    对于数据库相关的业务,逃不过的数据分页场景,无论是前台分页浏览还是划到页面底部自动加载.对于分页需求,各数据库也提供了成熟的SQL支持,类似于Hibernate等ORM框架也集成了相关的方法.但是基于 ...

  6. ASP.NET分页方法的了解程度

    ASP.NET分页方法的了解程度 [出现频率] ★★★★☆ [解答] ASP.NET分页的常用方法有以下几种. q 启用部分数据控件的内置分页功能,如设置GridView控件的"AllowP ...

  7. (转)几种常用存储过程分页方法

    我们先给出几种主要的分页方法和核心语句,然后直接给出结论,有兴趣的读者可以看看后面的数据 几种常用存储过程分页方法 TopN方法 select Top(@PageSize) from TableNam ...

  8. mysql分页概念_MySQL学习笔记之数据定义表约束,分页方法总结

    本文实例讲述了MySQL学习笔记之数据定义表约束,分页方法.分享给大家供大家参考,具体如下: 1. primary key 主键 特点:主键是用于唯一标识一条记录的约束,一张表最多只能有一个主键,不能 ...

  9. 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)

    给DataList分页有两个办法:1.自定义实现分页方法 2.用第三方控件(例如AspNetPager) 先介绍下如何自定义实现分页方法. 我的DataList分页方法的核心原理是利用PagedDat ...

最新文章

  1. 独家 | 几个Jupyter笔记本的使用技巧
  2. win10家庭版gpedit.msc无法打开本地组策略
  3. python面向对象三大特性、类的约束、print带颜色输出及super补充
  4. CLion之C++框架篇-安装工具,基础框架的搭建(一)
  5. sql查询中使用in和exits比较和区别
  6. JavaScript——原型/原型链中的顶层对象(图解)
  7. vim替换字符串带斜杠_Vim:正则表达式匹配一个字符串
  8. iphone全部机型_5G旗舰坚果R2再出发 1亿像素拍照出彩领跑四千价位档|像素|华为mate|iphone|手机...
  9. html网页毕业论文,HTML网页设计毕业论文.pdf
  10. Keras的两种模型:序列模型(Sequential)和通用模型(Model)
  11. 计算机在地理数据的应用,地理信息系统(GIS)在环境监测中的应用
  12. 【AI语音】魔百盒M301H-JL代工-3798MV300芯片-支持蓝牙_免费固件包
  13. 当你们在谈论React和Vue的时候,我在用Mithril
  14. 山东赛区|数学建模国赛山东赛区成绩发布
  15. Java版Word开发工具Aspose.Words功能解析:将Word文档(DOC / DOCX)转换为HTML
  16. 安卓APP源码和设计报告——智能垃圾桶
  17. 综艺节目php灭灯_非诚勿扰php程序员 被全灭灯的是哪一期 求知道
  18. java 多重继承的困境
  19. RGB颜色空间与Lab颜色空间区别与联系(附转换代码)
  20. Robolectric单元测试 - Android Could not determine artifacts for XXXX: Skipped due to earlier error

热门文章

  1. JAVABEAN练习题
  2. 2021年化工自动化控制仪表及化工自动化控制仪表考试试题
  3. 有关于集成开发工具IntelliJ IDEA的安装
  4. 三种市盈率和环比及TTM计算法
  5. Autolabeling 3D Objects with Differentiable Rendering of SDF Shape Priors
  6. java计算机毕业设计高校教学资源共享平台MyBatis+系统+LW文档+源码+调试部署
  7. smalldatetime类型
  8. iphone——NSRunLoop概念
  9. 如何清理Docker占用的磁盘空间? 1
  10. 基于php在线学习平台管理系统获取(php毕业设计)