java 分页功能
1.分页工具类
package com.bw.shop.util;
import java.util.List;
import com.sun.org.apache.regexp.internal.recompile;
public class PageModel {
private List list; //结果集
private int totalRecords; //查询记录
private int pageSize; //每页记录条数
private int pageNo; //当前页数
private int totalPages; //总页数
private int previousPageNo;
private int nextPageNo;
private int bottomPage;
public PageModel(){
}
public PageModel(int pageNo,int pageSize,int totalRecords,List list){
this.pageNo = pageNo;
this.pageSize = pageSize;
this.totalRecords = totalRecords;
this.list = list;
}
public int getTotalPages(){
if (totalRecords%pageSize == 0)
totalPages = totalRecords / pageSize;
else
totalPages = totalRecords / pageSize + 1;
return totalPages;
}
//获取首页
public int getTopPageNo(){
return 1;
}
//上一页
public int getPreviousPageNo(){
if (pageNo<=1) {
previousPageNo = 1;
}else {
previousPageNo = pageNo - 1;
}
return previousPageNo;
}
//下一页
public int getNextPageNo() {
if (pageNo >= getBottomPageNo()) {
nextPageNo = getBottomPageNo();
} else {
nextPageNo = pageNo + 1;
}
return nextPageNo;
}
2.实现获取分页结果集和获取总的记录条数
//取得分页的结果集合
public List<Link> findByPage(int pageNo,int pageSize) {
List<Link> list = new ArrayList<Link>();
String sql = "SELECT * FROM Link order by sort limit "+(pageNo-1)*pageSize+","+pageSize+" ";
Connection conn = JdbcUtil.getConn();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); // 取得数据库端的查询结果集合
while (rs.next()) { // 每次判断是否有下一条数据,它从标题栏开始算
Link bean = new Link();// 每次取一行数据,就将该行数据 封装到Link对象中
bean.setLid(rs.getInt(1));
bean.setTitle(rs.getString(2));
bean.setImgpath(rs.getString(3));
bean.setUrl(rs.getString(4));
bean.setInfo(rs.getString(5));
bean.setIsshow(rs.getInt(6));
bean.setSort(rs.getInt(7));
// 将对象存入程序端的集合中
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
}
JdbcUtil.closeAll(rs, ps, conn); return list; } //取得总的记录条数
public int getTotalRecords() {
int total=0;
String sql = "SELECT count(*) FROM Link ";
Connection conn = JdbcUtil.getConn();
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); // 取得数据库端的查询结果集合
if (rs.next()) { // 每次判断是否有下一条数据,它从标题栏开始算
total=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
JdbcUtil.closeAll(rs, ps, conn); return total; }
3.servlet操作
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置当前页数,默认是第1页
int pageNo =Integer.parseInt( request.getParameter("pageNo")==null?"1":request.getParameter("pageNo"));
LinkService linkService=new LinkServiceImpl();
int totalRecords = linkService.getTotalRecords();
//取得分页的结果集合
List list = linkService.findByPage(pageNo, 3);
//封装存值
PageModel pageModel = new PageModel(pageNo, 3, totalRecords, list);
request.setAttribute("pageModel", pageModel);
//跳转
request.getRequestDispatcher("linkList.jsp").forward(request, response);
}
4.赋值
<TR class="td-block" align=middle>
<TD height=19 width="100%" colSpan=4 align=right>
<a href=${pageModel.pageNo==1?"#":"LinkServlet?pageNo=1"}> 首 页 </a>
<a href="LinkServlet?pageNo=${pageModel.previousPageNo}"> 上一页 </a>
<A href="LinkServlet?pageNo=${pageModel.nextPageNo}">下一页</A>
<A href="LinkServlet?pageNo=${pageModel.bottomPageNo}">尾页</A>
${pageModel.pageNo}/${pageModel.totalPages} 页
<FONT color=red>${pageModel.pageSize}</FONT>条记录/页,共<FONT color=red>${pageModel.totalRecords}</FONT>条记录
<SELECT class="input" onchange=javascript:document.location='LinkServlet?pageNo='+this.value >
<%PageModel pageModel = (PageModel) request.getAttribute("pageModel");
for (int i = 0; i < pageModel.getTotalPages(); i++) {
out.println(" <OPTION "+((pageModel.getPageNo() == (i + 1)) ? "selected": "") + " value=" + (i + 1) + ">第"+ (i + 1) + "页</OPTION>");
}%>
<INPUT value=1 type=hidden name=forward></TD></TR>
java 分页功能的更多相关文章
- java分页功能代码
import java.util.ArrayList; import java.util.List; /** * * @author cheney * * @date Aug 31, 2012 */ ...
- java ssm框架实现分页功能 (oracle)
java web 实现分页功能 使用框架:ssm 数据库:oracle 话说 oracle 的分页查询比 mysql 复杂多了,在这里简单谈一下: 查询 前十条数据: SELECT * FROM( S ...
- Java Web -【分页功能】详解
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- 第83节:Java中的学生管理系统分页功能
第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...
- Java Web(十) 分页功能
分页 分页的使用非常普遍,现在一步步的把分页功能实现出来,先看看已经写好的效果: 该页面的所有数据都存放在一个javaBean对象(PageBean)里,每次访问该页面时,Serlvet就会把page ...
- Java分页需求
近期在实现项目接口时,经常需要分页功能.有时返回“String”,有时是“Object”格式的分页List.针对这种情况,本人用java实现对List分页. 第一版 package org.sun.j ...
- 【Bootstrap】Bootstrap和Java分页-第一篇
目录 关于此文 pagination BetweenIndex DefaultPagination QueryHandler BookDaoImpl BookServiceImpl BookActio ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
- 【jQuery 分页】jQuery分页功能的实现
自写的jQuery实现分页功能的分页组件: 功能效果如下: 分页组件就是上图中的三部分, 分别放在表格上部 和下部 . 其中, 1>>>页面的代码如下: product.jsp 其 ...
随机推荐
- WebApi安全性 使用TOKEN+签名验证
首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题, ...
- Redis初识
安装与使用 Redis-x64-3.2.100:服务端 + 客户端 redis-3.2.5:源代码 Redis Desktop Manager - v0.8.8:客户端(基于Qt5的跨平台Redis桌 ...
- 笔记:xubuntu下如何让系统默认使用nvidia显卡,而不是intel集显
经反复折腾,得到如下的解决方法: prime-select nvidia 简单吧,但关系是如果让它开机自动执行一次. 反复折腾了xinitrc ,~/.xinitrc , /etc/rc.local ...
- pwm 占空比 频率可调的脉冲发生器
module xuanpin #(parameter N=25)(clk,clr,key_in_f,key_in_z,f_out);input clk,clr,key_in_f,key_in_z;ou ...
- 如何实现一个php框架系列文章【2】实现类的自动加载
根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定. 类名 文件名 路径 模型类m {$app}Mod {$app}.mod.php {$app}/model ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 大量数据快速导出的解决方案-Kettle
1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi.使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量 ...
- 关于Java泛型的使用
在目前我遇到的java项目中,泛型应用的最多的就属集合了.当要从数据库取出多个对象或者说是多条记录时,往往都要使用集合,那么为什么这么使用,或者使用时有什么要注意的地方,请关注以下内容. 感谢Wind ...
- iOS之判断字符串是否为空字符的方法
- (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ...
- Java Web之网上购物系统(提交订单、查看我的订单)
作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...