当前位置:网站首页>对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;
}
注意:这种分页工具类只适用于少数据,对于上百万的数据,响应的时间就很长了,原因是对于集合先查出了所有的数据,然后再对所有的数据进行分页,如果上百万的数据的话,查询需要时间,所以响应很慢,更好的方法还在琢磨中,如您有更好的方法,麻烦提供一下
边栏推荐
- Duplicate entry ‘XXX‘ for key ‘XXX.PRIMARY‘解决方案。
- PCL 计算点云坐标最值及其索引
- DVWA安装教程(懂你的不懂·详细)
- ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your
- 【ORACLE Explain 详解】
- Unity resources management series: Unity framework how to resource management
- MYSQL一站式学习,看完即学完
- The 15th day of the special assault version of the sword offer
- Mysql application cannot find my.ini file after installation
- 2022-07-30:以下go语言代码输出什么?A:[]byte{} []byte;B:[]byte{} []uint8;C:[]uint8{} []byte;D:[]uin8{} []uint8。
猜你喜欢
随机推荐
pycharm专业版使用
MySQL optimization: from ten seconds to three hundred milliseconds
Unity Fighter
[Detailed explanation of ORACLE Explain]
On-line monitoring system for urban waterlogging and water accumulation in bridges and tunnels
Unity shader forge和自带的shader graph,有哪些优缺点?
SQL行列转换
ABC D - Distinct Trio(k元组的个数
Reference code series_1. Hello World in various languages
DVWA之SQL注入
【一起学Rust】Rust的Hello Rust详细解析
sql statement - how to query data in another table based on the data in one table
如何将项目部署到服务器上(全套教程)
Blockbuster | foundation for platinum, gold, silver gave nameboards donors
面试官问我TCP三次握手和四次挥手,我真的是
MySQL optimization slow log query
Linux系统安装mysql(rpm方式安装)
<urlopen error [Errno 11001] getaddrinfo failed>的解决、isinstance()函数初略介绍
MySQL事务隔离级别详解
Unity URP渲染管线摄像机核心机制剖析









