java开发之分页查询

工具类

package com.luer.comm.utils;

import java.util.List;

public class PageBean<T> {    //已知数据    private int pageNum;    //当前页,从请求那边传过来。    private int pageSize;    //每页显示的数据条数。    private int totalRecord;    //总的记录条数。查询数据库得到的数据

//需要计算得来    private int totalPage;    //总页数,通过totalRecord和pageSize计算可以得来    //开始索引,也就是我们在数据库中要从第几行数据开始拿,有了startIndex和pageSize,    //就知道了limit语句的两个数据,就能获得每页需要显示的数据了    private int startIndex;

//将每页要显示的数据放在list集合中    private List<T> list;

//分页显示的页数,比如在页面上显示1,2,3,4,5页,start就为1,end就为5,这个也是算过来的    private int start;    private int end;

private String successMsg;    private String failMsg;

public PageBean(){}

public PageBean(int pageNum,int pageSize){        this.pageNum = pageNum;        this.pageSize = pageSize;    }    //通过pageNum,pageSize,totalRecord计算得来tatalPage和startIndex    //构造方法中将pageNum,pageSize,totalRecord获得    public PageBean(int pageNum,int pageSize,int totalRecord) {        this.pageNum = pageNum;        this.pageSize = pageSize;        this.totalRecord = totalRecord;

//totalPage 总页数        if(totalRecord%pageSize==0){            //说明整除,正好每页显示pageSize条数据,没有多余一页要显示少于pageSize条数据的            this.totalPage = totalRecord / pageSize;        }else{            //不整除,就要在加一页,来显示多余的数据。            this.totalPage = totalRecord / pageSize +1;        }        //开始索引        this.startIndex = (pageNum-1)*pageSize ;        //显示5页,这里自己可以设置,想显示几页就自己通过下面算法修改        this.start = 1;        this.end = 5;        //显示页数的算法

if(totalPage <=5){            //总页数都小于5,那么end就为总页数的值了。            this.end = this.totalPage;        }else{            //总页数大于5,那么就要根据当前是第几页,来判断start和end为多少了,            this.start = pageNum - 2;            this.end = pageNum + 2;

if(start < 0){                //比如当前页是第1页,或者第2页,那么就不如和这个规则,                this.start = 1;                this.end = 5;            }            if(end > this.totalPage){                //比如当前页是倒数第2页或者最后一页,也同样不符合上面这个规则                this.end = totalPage;                this.start = end - 5;            }        }    }    //get、set方法。    public int getPageNum() {        return pageNum;    }

public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }

public int getPageSize() {        return pageSize;    }

public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }

public int getTotalRecord() {        return totalRecord;    }

public void setTotalRecord(int totalRecord) {        this.totalRecord = totalRecord;    }

public int getTotalPage() {        return totalPage;    }

public void setTotalPage(int totalPage) {        this.totalPage = totalPage;    }

public int getStartIndex() {        return startIndex;    }

public void setStartIndex(int startIndex) {        this.startIndex = startIndex;    }

public List<T> getList() {        return list;    }

public void setList(List<T> list) {        this.list = list;    }

public int getStart() {        return start;    }

public void setStart(int start) {        this.start = start;    }

public int getEnd() {        return end;    }

public void setEnd(int end) {        this.end = end;    }

public void setSuccessMsg(String successMsg){        this.successMsg = successMsg;    }

public String getSuccessMsg(){        return successMsg;    }

public void setFailMsg(String failMsg){        this.failMsg = failMsg;    }

public String getFailMsg(){        return failMsg;    }

}
/* * 分页查询 * pageNum:当前页 * pageSize:每页显示多少条数据 * */@ResponseBody@RequestMapping("/queryPage")public PageBean queryPage(int pageNum, int pageSize){    PageBean pageBean = new PageBean();    if(pageNum > 0 && pageSize > 0) {        int totalRecord = goodsmessageService.countGoodsmessage();        pageBean = new PageBean(pageNum, pageSize, totalRecord);

//从该行开始拿数据        int startIndex = (pageNum - 1) * pageSize;        pageBean.setStartIndex(startIndex);

//数据集合        List<Goodsmessage> goodsmessages = goodsmessageService.findListDataPage(startIndex, pageSize);        pageBean.setList(goodsmessages);        pageBean.setSuccessMsg("success");    }else{        pageBean.setFailMsg("error");    }    return pageBean;}

如果帮助到你 给点鼓励 点个赞吧 

原文地址:https://www.cnblogs.com/shenhaha520/p/10214545.html

时间: 2024-11-10 05:03:55

java开发之分页查询的相关文章

Java学习之分页查询

Java学习之分页查询 一先做数据库的实体类 Userinfo.java <span style="font-size:14px;">package com.zhu.books.jdbc; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class Pagation extends DBCon

【java】在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException

场景: 在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException 错误: java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) at com.pisen.cloud.luna.ms.goods.api.impl.Te

Java中oracle分页查询01

在数据库汇中的查询语句:oracle中使用rownum进行分页,从每页在总记录数的第n条到第m条:这里的是每页10条记录,下面sql所查询的是第页的记录数:oracle的分页是从1开始的,这里写成rownum>=0,rownum<=9,查询的记录是9条. SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM TABLE1 WHERE TABLE1_ID = XX ORDER BY GMT_CREATE DESC) RO

java里自定义分页查询的尝试

1 public String list(){ 2 try { 3 LoginUser loginUser = getLoginUser();//获取当前登录用户 4 if(curpage<=0){ 5 curpage=1; 6 } 7 pagesize=15; 8 RunParam runParam = runParamService.getTzrqrq(); 9 10 if(faccountDate == null){ 11 faccountDate = runParam.getfItemD

JDBC在Java Web中的应用——分页查询

分页查询 通过JDBC实现分页查询的方法有很多种,而且不同的数据库机制也提供了不同的分页方式,在这里介绍两种非常典型的分页方法. 通过ResultSet的光标实现分页 通过ResultSet的光标实现分页,优点是在各种数据库上通用,缺点是占用大量资源,不适合数据量大的情况. 2. 通过数据库机制进行分页 很多数据库自身都提供了分页机制,如SQL Server中提供的top关键字,MySQL数据库中提供的limit关键字,它们都可以设置数据返回的记录数. 通过各种数据库的分页机制实现分页查询,其优

Java链接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash

准备工作 1.创建Java的Maven项目 创建好的目录结构如下:  另外注意junit的版本,最好不要太高,最开始笔者使用的junit4.12的,发现运行的时候会报错.最后把Junit的版本改成4.7的之后,问题解决了. 创建测试工具类HbaseDemo,为了保证能够让Hbase运行,需要最开始写出如下配置: package toto.com.hbase; import java.util.ArrayList; import java.util.Iterator; import org.apa

[原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

详述 DB2 分页查询及 Java 实现

DB2 startNum:起始数 endNum:结尾数 SQL 语句? SELECT * FROM ( SELECT B.*, ROWNUMBER() OVER() AS TN FROM ( SELECT * FROM 表名 ) AS B ) AS A WHERE A.TN BETWEEN startNum AND endNum; 1 2 3 4 5 6 7 8 如上所示,此即为 DB2 的分页查询语句. Mapper <?xml version="1.0" encoding=&

Java技术积累——用最原始的代码见证分页查询实现原理

关于分页查询,大家并不陌生,easyui中封装的datagrid将表格的一系列操作运用的淋漓尽致,分页查询便是其中之一.然而,我们却疏于了解分页查询的基本实现原理,它究竟是如何实现的,今天就带大家一起来探个究竟! 看一下界面的实现效果: 看似很复杂的事情,其实实现它最核心的东西有两个: 一.实现分页查询的SQL语句 select user_id,user_name,password,contact_Tel,email,create_date from( select rownum rn,user