java分页算法

纯Java分页算法完整版本 这个我人写的一个纯Java版的分页算法,与平台无关性,具有很好的通用性,同时附带完整的工程; 工程使用SQLServer2005,建表脚本在工程下的Setup中,根据你个人的数据库调整资源文件中的配置即可运行;同时这个算法非常简单高效; 立即下载

分享一个分页算法

关键字: j2ee 网页 struts 分页算法
/**
* 分页算法
*/
package cn.eshore.user.util;

public class PageBean {

private int currentPage = 1;// 当前页数

public int totalPages = 0;// 总页数

private int pageSize = 0;// 每页显示数

private int totalRows = 0;// 总数据数

private int startNum = 0;// 开始记录

private int nextPage = 0;// 下一页

private int previousPage = 0;// 上一页

private boolean hasNextPage = false;// 是否有下一页

private boolean hasPreviousPage = false;// 是否有前一页

public PageBean(int pageSize, int currentPage, int totalRows) {

this.pageSize = pageSize;
this.currentPage = currentPage;
this.totalRows = totalRows;

if ((totalRows % pageSize) == 0) {
totalPages = totalRows / pageSize;
} else {
totalPages = totalRows / pageSize + 1;
}

if (currentPage >= totalPages) {
hasNextPage = false;
currentPage = totalPages;
} else {
hasNextPage = true;
}

if (currentPage <= 1) {
hasPreviousPage = false;
currentPage = 1;
} else {
hasPreviousPage = true;
}

startNum = (currentPage - 1) * pageSize;

nextPage = currentPage + 1;

if (nextPage >= totalPages) {
nextPage = totalPages;
}

previousPage = currentPage - 1;

if (previousPage <= 1) {
previousPage = 1;
}

}

public boolean isHasNextPage() {

return hasNextPage;

}

public boolean isHasPreviousPage() {

return hasPreviousPage;

}

/**
* @return the nextPage
*/
public int getNextPage() {
return nextPage;
}

/**
* @param nextPage
*            the nextPage to set
*/
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}

/**
* @return the previousPage
*/
public int getPreviousPage() {
return previousPage;
}

/**
* @param previousPage
*            the previousPage to set
*/
public void setPreviousPage(int previousPage) {
this.previousPage = previousPage;
}

/**
* @return the currentPage
*/
public int getCurrentPage() {
return currentPage;
}

/**
* @param currentPage
*            the currentPage to set
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

/**
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}

/**
* @param pageSize
*            the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

/**
* @return the totalPages
*/
public int getTotalPages() {
return totalPages;
}

/**
* @param totalPages
*            the totalPages to set
*/
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}

/**
* @return the totalRows
*/
public int getTotalRows() {
return totalRows;
}

/**
* @param totalRows
*            the totalRows to set
*/
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}

/**
* @param hasNextPage
*            the hasNextPage to set
*/
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}

/**
* @param hasPreviousPage
*            the hasPreviousPage to set
*/
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}

/**
* @return the startNum
*/
public int getStartNum() {
return startNum;
}

/**
* @param startNum
*            the startNum to set
*/
public void setStartNum(int startNum) {
this.startNum = startNum;
}
}

     如果你使用的是struts,那么你在调用这个PageBean分页算法之前,你得先取得对你所想要进行分页的数据的总记录数,然后你就实例化这个PageBean,之后你就可以通过get方法得到任何你想要的值。

package test;

import cn.eshore.user.util.PageBean;

public class Test extends DispatchAction{
   
        ......

        public ActionForward loadPageUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

.......
                  int pageSize = 5;
                 
                  String pageId = request.getParameter("pageId");
if (pageId == null || pageId.equals("")) {
pageId = "1";
}
int currentPage = Integer.parseInt(pageId);

                  //从服务层里得到用户的总记录数
int totalRows = userService.getTotalRows();

PageBean page = new PageBean(pageSize, currentPage, totalRows);

....
}
}
边缘设备部署全攻略——ARM架构设备的OpenClaw优化(2026实测) 本文详细介绍了ARM架构设备上OpenClaw的部署与优化方案。针对边缘计算场景,文章系统分析了三类ARM设备:嵌入式设备(如Raspberry Pi 4、Jetson Nano)、工业设备(如BeagleBone、i.MX8M Plus)和服务器设备(如Marvell Armada、AWS Graviton3),并提供了详细的性能与功耗对比数据。在系统配置方面,重点推荐了Ubuntu ARM、Debian ARM和OpenWRT三种操作系统,包括内核版本、必备软件包和针对边缘环境的优化策略(如CPU频率调 阅读详情

相关推荐

深入解析Vivado FIFO的Standard与FWFT模式:性能对比与应用场景

本文深入解析了Vivado FIFO的Standard与FWFT两种工作模式的核心差异。通过对比数据就绪时机、读延迟、控制逻辑和有效深度等关键特性,并结合图像处理、数据包转发等典型应用场景,为FPGA设计者提供了清晰的选择依据和实战配置指南,帮助优化数据流性能与设计效率。

weixin_29219189的博客 254

分页算法(Java)

分页的实现可分为两大类 一、数据在Java代码中进行分页,然后取得当前页数据;二、在数据库中直接取得当前页数据,不同的数据库有不同的实现。 计算总页数的方法是:总页数=(数据总行数+每页数据行数-1)/每页数据行数。 举例: 如果数据库中有10条数据,每页要显示的行数是3.那么总页数是:(10+3-1)/3 = 4 前三页3条数据,第4页1条数据。

wealon的技术专栏 2728

车机破解避坑指南:为什么你的CarPlay盒子不识别?从USB设备ID解析兼容性问题

本文深入解析车机USB设备兼容性问题,特别是CarPlay盒子不识别的原因,从硬件ID到识别机制全面剖析。通过ADB工具和root权限操作,提供详细的破解方案和兼容性测试结果,帮助用户解决车机与第三方设备的连接问题。

weixin_29175469的博客 602

Java 分页计算公式

1 根据传入的参数计算 1.1 请求参数(currPage:当前页、pageSize:每页展示条数),根据这两个参数计算起始起始条数、截止条数 起始条数 firstIndex = (currPage-1) * pageSize 截止条数 lastIndex = currPage * pageSize 1.2 计算总页码(需获取总条数) pages= total%pageSize == 0 ? total/pageSize: total/pageSize + 1 ...

zhangwenchao0814的博客 1万+

一次HTTP完整得请求过程

一次HTTP完整的请求过程 一,大致流程: 根据域名和DNS解析到服务器的IP地址(DNS+CDN) 通过ARP协议获得IP地址对应的物理机器得MAC地址 浏览器对服务器发起三次握手 建立TCP连接后发起HTTP请求报文 服务器响应HTTP请求,将响应报文返回浏览器 短连接情况下,请求结束通过TCP四次挥手关闭连接,长连接在没有访问服务器得若干时间后,进行连接关闭 浏览器得到响应信...

qq_40760617的博客 344

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1246

【常用算法】java实现的三种分页算法

java实现的三种分页算法

zlfjavahome的专栏 1417

基于 MATLAB 的综合能源系统建模案例 

电平衡约束:P_{gt}(t)+P_{grid}(t)-P_{eb}(t)-P_{load}(t)=0,其中 P_{grid}(t) 为与外部电网的交互功率(正表示购电,负表示售电)。- 电锅炉的热输出功率 Q_{eb} 与输入电功率 P_{eb} 的关系为:Q_{eb}=\eta_{eb}\times P_{eb},其中 \eta_{eb} 为电锅炉的热效率。- 燃气轮机的余热回收功率 Q_{gt} 与发电功率也存在一定关系,例如:Q_{gt}=c\times P_{gt},c 为余热回收比例系数。

qq_57128262的博客 1395

Java分页算法*3个最常用的

介绍三个最常用的分页算法 First(感觉这个最简单实用)//总记录数 int rows=21; //每页显示的记录数 int pageCount=5; //页数 int sum=(rows-1)/pageCount+1;Second//总记录数 int rows=21; //每页显示的记录数 int pageCount=5; //页数 int sum=rows%5==0?rows

常今 3万+

【AI智能体】Codex 插件从使用到项目开发实战操作详解

Codex 插件从使用到项目开发实战操作详解

congge 7642

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 420

Java Web(十一) 分页功能的实现

      虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果。                             --WH   一、分页的思路     首先我们得知道写分页代码时的思路,保持思路清晰,有步骤的进行,才能行云如水。先来看看分页的效果                            ...

weixin_33827590的博客 1618

UFSV3.1-RPMB实现与测试

UFS RPMB功能验证与测试指南 本文介绍了UFS(通用闪存存储)中RPMB(重放保护内存块)的功能验证与测试方法。主要内容包括: RPMB基础配置: 在Linux系统中查看RPMB设备节点 读取RPMB单元描述符获取配置信息 配置RPMB区域大小(16MB)和使能状态 RPMB特性验证: 获取单次写最大请求(16KB) 测试未编程认证密钥时的读写操作 验证认证密钥编程过程 测试用例: 包含4个测试用例,验证RPMB在不同状态下的行为 提供了详细的命令行操作和预期结果 本文可作为UFS RPMB功能验证。

小码哥的博客 1255

java完整分页算法,最简单的java分页算法

定义两个Vector,一个为储存查询所有记录的totalV,另一个储存当前页的记录currentPageV;总的记录数:int totalSize = totalV.getSize();每页显示的记录数:int countPerPage;总页数:int totalPageNum = totalSize/countPerPage;//如果总的记录数和每页记录数的余数大于零,//那么总的页数为他们的整...

weixin_42415451的博客 1457

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一个方便的java分页算法

一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * @author cary * @since 201...

chuihuang8310的博客 276

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java分页计算_java分页算法

关键字: j2ee 网页 struts 分页算法/*** 分页算法*/package cn.eshore.user.util;public class PageBean {private int currentPage = 1;// 当前页数public int totalPages = 0;// 总页数private int pageSize = 0;// 每页显示数private int to...

weixin_42515120的博客 1382

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java.分页上一页下一页算法_一个方便的java分页算法

package cn.com.base.common.pagination;/*** 分页基类** @author cary* @since 2013-1-23 下午3:03:32*/public classPageable implements java.io.Serializable {private static final long serialVersionUID = 1L;/*** 每...

weixin_42297846的博客 7748

java实现的一个分页算法

一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * @author cary * @since 2013-1-23 下午3:03:32 */ public class Pageable implements java.io.S

phubing 1139

最简单的java分页算法。。

定义两个Vector,一个为储存查询所有记录的totalV,另一个储存当前页的记录currentPageV;总的记录数:int totalSize = totalV.getSize();每页显示的记录数:int countPerPage;总页数:int totalPageNum = totalSize/countPerPage;如果总的记录数和每页记录数的余数大于零,那么总的页数为他们的整除结果加

赵小刀的文字吧 2207

利用颠倒TOP分页算法实现分页功能的思考(java 代码实现)

一、选择分页算法下面是颠倒TOP分页算法 pagesize: 每页显示记录数 cureentpage:当前页数 select * from (   select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage   * from news ORDER BY addtime DESC ) as a   ORDER BY addti

黄瓜的技术研究室 1210

Java数据列表分页查询算法

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊这些十分重要的“必抓!”算法吧~其中数据库查询分页算法是每个后端开发者必备的算法技能。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 969

java分页计算_一个方便的java分页算法

package cn.com.base.common.pagination;/*** 分页基类** @author cary* @since 2013-1-23 下午3:03:32*/public classPageable implements java.io.Serializable {private static final long serialVersionUID = 1L;/*** 每...

weixin_39676242的博客 583
上一篇: JDK 环境变量设置
下一篇: java中的值传递和引用传递
fineman2012
博客等级 码龄13年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值