当前位置:网站首页>对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;
}
注意:这种分页工具类只适用于少数据,对于上百万的数据,响应的时间就很长了,原因是对于集合先查出了所有的数据,然后再对所有的数据进行分页,如果上百万的数据的话,查询需要时间,所以响应很慢,更好的方法还在琢磨中,如您有更好的方法,麻烦提供一下
边栏推荐
- Unity资源管理系列:Unity 框架如何做好资源管理
- sql语句之多表查询
- SQL statement to range query time field
- <urlopen error [Errno 11001] getaddrinfo failed>的解决、isinstance()函数初略介绍
- datagrip带参sql查询
- What are the advantages and disadvantages of Unity shader forge and the built-in shader graph?
- DVWA shooting range environment construction
- 太厉害了,终于有人能把文件上传漏洞讲的明明白白了
- 如何将项目部署到服务器上(全套教程)
- Unity教程:URP渲染管线实战教程系列【1】
猜你喜欢

SQL行列转换

centos7安装mysql5.7

CentOS7 - yum install mysql

MYSQL一站式学习,看完即学完

Shell重油常压塔模拟仿真与控制

Unity教程:URP渲染管线实战教程系列【1】

MySQL8.0.26安装配置教程(windows 64位)

Unity resources management series: Unity framework how to resource management

SQL row-column conversion

Moment Pool Cloud quickly installs packages such as torch-sparse and torch-geometric
随机推荐
Unity mobile game performance optimization series: performance tuning for the CPU side
Lua,ILRuntime, HybridCLR(wolong)/huatuo热更新对比分析
Sql解析转换之JSqlParse完整介绍
[C language] Detailed explanation of operators
mysql存储过程
TOGAF之架构标准规范(一)
MySQL transaction (transaction) (this is enough..)
Temporal介绍
ABC D - Distinct Trio (Number of k-tuples
Typec手机有线网卡网线转网口转接口快充方案
MySQL window function
SQL语句中对时间字段进行区间查询
MySQL优化之慢日志查询
质量小议12 -- 以测代评
矩池云快速安装torch-sparse、torch-geometric等包
Redis进阶 - 缓存问题:一致性、穿击、穿透、雪崩、污染等.
Pytorch教程Introduction中的神经网络实现示例
【C语言】操作符详解
SQL injection of DVWA
DVWA之SQL注入