当前位置:网站首页>对list集合进行分页,并将数据显示在页面中
对list集合进行分页,并将数据显示在页面中
2022-07-31 05:08:00 【小果子^_^】
工具类
工具类代码:
public class PageUtil {
/**
* 开始分页
* @param list
* @param pageNum 页码
* @param pageSize 每页多少条数据
* @return
*/
public static List startPage(List list, Integer pageNum,
Integer pageSize) {
if (list == null) {
return null;
}
if (list.size() == 0) {
return null;
}
Integer count = list.size(); // 记录总数
Integer pageCount = 0; // 页数
if (count % pageSize == 0) {
pageCount = count / pageSize;
} else {
pageCount = count / pageSize + 1;
}
int fromIndex = 0; // 开始索引
int toIndex = 0; // 结束索引
if (pageNum > pageCount){
return null;
}
if (pageNum != pageCount) {
System.out.println("pageNum====>"+pageNum);
fromIndex = (pageNum - 1) * pageSize;
System.out.println("fromindex===>"+fromIndex);
toIndex = fromIndex + pageSize;
} else {
System.out.println("from====>"+fromIndex);
fromIndex = (pageNum - 1) * pageSize;
toIndex = count;
}
List pageList = list.subList(fromIndex, toIndex);
return pageList;
}
}
在项目中的用法
从数据库中查出的数据集合:noGroup
List<Students> noGroup = studentsService.queryStudentNotInGroup(campusId, phone);
调用工具类的方法:
List<Students> page = PageUtil.startPage(noGroup,pageNum,pageSize);
总条数:
Integer count = noGroup.size();
总页码:
Integer totalPage = count % 10 == 0 ? count / 10 : count / 10 + 1;
map.put("totalPage", totalPage);
map.put("page", page);
已测试有效,希望可以帮到各位
**修改一下 :数据过多的话, if (pageNum != pageCount) 该行判断会报错,测试将!=修改为!equals---------> if (!pageNum.equals(pageCount)) **
修改:如果传入的页码大于总页码的话,会报错空指针异常,所以添加一个判断:
if (pageNum > pageCount){
return null;
}
注意:这种分页工具类只适用于少数据,对于上百万的数据,响应的时间就很长了,原因是对于集合先查出了所有的数据,然后再对所有的数据进行分页,如果上百万的数据的话,查询需要时间,所以响应很慢,更好的方法还在琢磨中,如您有更好的方法,麻烦提供一下
边栏推荐
- On-line monitoring system for urban waterlogging and water accumulation in bridges and tunnels
- Go language study notes - dealing with timeout problems - Context usage | Go language from scratch
- 工作流编排引擎-Temporal
- MySQL optimization: from ten seconds to three hundred milliseconds
- 【一起学Rust】Rust学习前准备——注释和格式化输出
- Unity Fighter
- Moment Pool Cloud quickly installs packages such as torch-sparse and torch-geometric
- SQL injection of DVWA
- MySQL8.0安装教程,在Linux环境安装MySQL8.0教程,最新教程 超详细
- MySQL8.0.26安装配置教程(windows 64位)
猜你喜欢

Moment Pool Cloud quickly installs packages such as torch-sparse and torch-geometric

ES 源码 API调用链路源码分析

太厉害了,终于有人能把文件上传漏洞讲的明明白白了

Typec手机有线网卡网线转网口转接口快充方案

Heavyweight | The Open Atomic School Source Line activity was officially launched

一文了解大厂的DDD领域驱动设计

DVWA之SQL注入

Unity手机游戏性能优化系列:针对CPU端的性能调优

Mysql应用安装后找不到my.ini文件
![2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。](/img/7f/130a9b733855a2bab07d26ffda2c49.png)
2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。
随机推荐
MySQL database installation (detailed)
mysql stored procedure
mysql使用on duplicate key update批量更新数据
打造基于ILRuntime热更新的组件化开发
Minio upload file ssl certificate is not trusted
Open Source Database Innovation in the Digital Economy Era | 2022 Open Atom Global Open Source Summit Database Sub-Forum Successfully Held
为什么要用Flink,怎么入门使用Flink?
SQL row-column conversion
Linux系统安装mysql(rpm方式安装)
剑指offer专项突击版第15天
城市内涝及桥洞隧道积水在线监测系统
STM32——DMA
Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
MySQL忘记密码怎么办
如何将项目部署到服务器上(全套教程)
EasyExcel的简单读取操作
面试官:生成订单30分钟未支付,则自动取消,该怎么实现?
Mysql——字符串函数
110 MySQL interview questions and answers (continuously updated)
Heavyweight | The Open Atomic School Source Line activity was officially launched