Java对List进行分页

Java对组装的List分页

以前一直是在DAO层直接从数据库里分页,但是今天因为有些数据,需要混合展示,就是根据条件取出了多个对象的集合,然后把这些多个List放到一个List里,然后在从这个List里进行分页。

 1 public SearchResult paging(List<T> list, int pageNumber, int pageSize) throws Exception{
 2         List<T> pageList = new ArrayList<T>();
 3         int currIdx = (pageNumber > 1 ? (pageNumber -1) * pageSize : 0);
 4         for (int i = 0; i < pageSize && i < list.size() - currIdx; i++){
 5             T listNew = list.get(currIdx + i);
 6             pageList.add(listNew);
 7         }
 8         SearchResult<T> searchResult = new SearchResult<>();
 9         searchResult.setList(pageList);
10         searchResult.setTotal(list.size());
11         if (searchResult.getTotal()%pageSize == 0){
12             searchResult.setPages((int)searchResult.getTotal()/pageSize);
13         }else {
14             searchResult.setPages((int)searchResult.getTotal()/pageSize + 1);
15         }
16         searchResult.setPageNum(pageNumber);
17         searchResult.setPageSize(pageSize);
18         searchResult.setSize(pageList.size());
19         //是否是第一页
20         if (pageNumber == 1){
21             searchResult.setIsFirstPage(true);
22         }else {
23             searchResult.setIsFirstPage(false);
24         }
25         //是否是最后一页
26         if ((searchResult.getTotal() - pageNumber*pageSize) > 0){
27             searchResult.setIsLastPage(false);
28         }else {
29             searchResult.setIsLastPage(true);
30         }
31         return searchResult;
32     }

原文地址:https://www.cnblogs.com/wang-yaz/p/8405775.html

时间: 2024-11-10 16:13:01

Java对List进行分页的相关文章

java web 简单的分页显示

题外话:该分页显示是用 “表示层-控制层-DAO层-数据库”的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 重点:两个方法:(1)计算总的页数. (2)查询指定页数据. 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据库,核心代码如下: 1 import java.sql.Connection; 2 import ja

java web Spring mvc 分页实现

分页实现的效果:    ///////// /////////////////////////////////////////////////////// ////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////

JAVA学习之 实现分页查询

分页是系统中常用到的功能,只要涉及到查询必定伴随而来的就是分页,之前也学习过关于分页的内容,例如在牛腩的新闻发布系统,之前学习的大部分都是使用了假分页,这次学习java,使用Oracle数据库来实现一下真分页. 首先来说一下实现这个分页查询的流程: 一.封装分页信息: 需要分页的部分我们首先要做的是为分页封装一个分页实体,方便返回查询信息,封装如下: /** *封装分页信息 * @author YoungJong * */ public class PageModel<E> { //结果集 p

Java的大内存分页支持

原文:http://kilik.iteye.com/blog/677253 最近在研究java的性能调优,顺手写了一个小程序来测试性能问题.这个程序用来进行矩阵乘法运算,如下: for (int i = 0; i < 2048; i++) for (int j = 0; j < 2048; j++) for (int k = 0; k < 2048; k++) res[i][j] += mul1[i][k] * mul2[k][j]; 在ubuntu 10.04(64bit)下,JDK

java+jsp+servlet实现分页

web.xml配置: <servlet> <servlet-name>abc</servlet-name> <servlet-class>test.pageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>abc</servlet-name> <url-pattern>/insertstu</url

Java代码实现真分页

在JavaWeb项目中,分页是一个非常常见且重要的一个小方面.本次作为记载和学习,记录项目中出现的分页并做好学习记录.在这里,用的是SSH框架.框架可以理解如下图: 在JSP页面,描写的代码如下: 1 <div align="center"> 2 <c:if test="${page.currentPage>1}"> 3 <a href="show_findStessayAll.action?currentPage=1&

java操作数据库:分页查询

直接上.... 还是用之前的goods表,增加了一些数据 1.实体类Goods // 封装数据 public class Goods { private int gid; private String gname; private String gprice; private String gdate; public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } public String

Java数据库学习之分页查询

分页查询  limit [start],[rows] 思路: pram start 从哪一行开始 关键是从哪一行开始,需要根据查询的页数来进行换算出查询具体页数是从哪一行开始 start = (pages-1)*rows; pages : 具体要查询那一页 rows :   每页查询多少行 pram rows 查询多少行 总页数需用额外的方法使用SQL语句中的count关键字来计算,并对用户输入的页数进行逻辑判断. 当用户输入页数<=0;从第一页开始 当用户输入页数>=最大页数是 从最大的页数

分页的封装——java实现(基于oracle)

    分页功能(Pagenation类) 分页功能的 封装 + 实现: 分页的SQL语句 + 分页工具类Pagenation的细节 + 分页原理 一.     分页的SQL语句: select * from (selectt.*,row_number() over(order by ROWNUM ASC) rn from goods t) where rn>=? andrn<=? ?  goods :为表名,数据从goods中查得 ?  第一个? :起始行号 ?  第二个? :终点行号 二.