经典好用的list分页方法
大多数开发人员都知道,在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;}
使用方法总结:
- 可以直接固定页码和每页条数。如上面代码所示。(这针对于业务需求固定的情况下)
- 可以把数据当成入参去传递,由前端去传参。(更推荐这种写法)
@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分页方法相关推荐
- 新版数据库分页方法(Sql server2012)
1. ROW_NUMBER() 的分页方法 dbcc freeproccache dbcc dropcleanbuffers set statistics time on set statistics ...
- sql server两种分页方法
方法一: --分页方法一 select top 10 OrderID,CustomerID, EmployeeID,OrderDate,ShippedDate,ShipName,ShipAddress ...
- Sql Server 2012 分页方法分析(offset and fetch)
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中 offse ...
- Oracle、SQL Server、MySQL分页方法
测试用例:查询TEST_TABLE表中TEST_COLUMN列的第10-20条数据 1,Oracle分页方法 [sql] view plain copy SELECT A.* FROM ( SEL ...
- mysql 高效分页查询_PostgreSQL、MySQL高效分页方法探讨
对于数据库相关的业务,逃不过的数据分页场景,无论是前台分页浏览还是划到页面底部自动加载.对于分页需求,各数据库也提供了成熟的SQL支持,类似于Hibernate等ORM框架也集成了相关的方法.但是基于 ...
- ASP.NET分页方法的了解程度
ASP.NET分页方法的了解程度 [出现频率] ★★★★☆ [解答] ASP.NET分页的常用方法有以下几种. q 启用部分数据控件的内置分页功能,如设置GridView控件的"AllowP ...
- (转)几种常用存储过程分页方法
我们先给出几种主要的分页方法和核心语句,然后直接给出结论,有兴趣的读者可以看看后面的数据 几种常用存储过程分页方法 TopN方法 select Top(@PageSize) from TableNam ...
- mysql分页概念_MySQL学习笔记之数据定义表约束,分页方法总结
本文实例讲述了MySQL学习笔记之数据定义表约束,分页方法.分享给大家供大家参考,具体如下: 1. primary key 主键 特点:主键是用于唯一标识一条记录的约束,一张表最多只能有一个主键,不能 ...
- 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)
给DataList分页有两个办法:1.自定义实现分页方法 2.用第三方控件(例如AspNetPager) 先介绍下如何自定义实现分页方法. 我的DataList分页方法的核心原理是利用PagedDat ...
最新文章
- 独家 | 几个Jupyter笔记本的使用技巧
- win10家庭版gpedit.msc无法打开本地组策略
- python面向对象三大特性、类的约束、print带颜色输出及super补充
- CLion之C++框架篇-安装工具,基础框架的搭建(一)
- sql查询中使用in和exits比较和区别
- JavaScript——原型/原型链中的顶层对象(图解)
- vim替换字符串带斜杠_Vim:正则表达式匹配一个字符串
- iphone全部机型_5G旗舰坚果R2再出发 1亿像素拍照出彩领跑四千价位档|像素|华为mate|iphone|手机...
- html网页毕业论文,HTML网页设计毕业论文.pdf
- Keras的两种模型:序列模型(Sequential)和通用模型(Model)
- 计算机在地理数据的应用,地理信息系统(GIS)在环境监测中的应用
- 【AI语音】魔百盒M301H-JL代工-3798MV300芯片-支持蓝牙_免费固件包
- 当你们在谈论React和Vue的时候,我在用Mithril
- 山东赛区|数学建模国赛山东赛区成绩发布
- Java版Word开发工具Aspose.Words功能解析:将Word文档(DOC / DOCX)转换为HTML
- 安卓APP源码和设计报告——智能垃圾桶
- 综艺节目php灭灯_非诚勿扰php程序员 被全灭灯的是哪一期 求知道
- java 多重继承的困境
- RGB颜色空间与Lab颜色空间区别与联系(附转换代码)
- Robolectric单元测试 - Android Could not determine artifacts for XXXX: Skipped due to earlier error
热门文章
- JAVABEAN练习题
- 2021年化工自动化控制仪表及化工自动化控制仪表考试试题
- 有关于集成开发工具IntelliJ IDEA的安装
- 三种市盈率和环比及TTM计算法
- Autolabeling 3D Objects with Differentiable Rendering of SDF Shape Priors
- java计算机毕业设计高校教学资源共享平台MyBatis+系统+LW文档+源码+调试部署
- smalldatetime类型
- iphone——NSRunLoop概念
- 如何清理Docker占用的磁盘空间? 1
- 基于php在线学习平台管理系统获取(php毕业设计)