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 其 ...
随机推荐
- 2011奥斯卡最佳纪录片《监守自盗(Inside Job)》小结
影片探讨了2008年金融危机产生的原因. 美国忽略1933年的旧法律,立新法,以放松金融监管. 投资银行被允许更高的杠杆率,33:1,也就是说,投资物跌价3%就会导致破产. 投资银行放贷,但是转手将贷 ...
- 【WCF】基于WCF的在线升级
一.前言 前不久因公司产品需要完成了在线升级功能,因为编程技术不精,不敢冒然采用Socket方法实现在线升级,所以使用比较方便稳妥的WCF方式 如果考虑并发能力的话还是Socket> ...
- WangSql 1.0源码共享
一,项目背景 现在基本上大大小小的项目都需要和数据库打交道,自然而然数据库操作会有很多地方,而使用传统ADO.NET整个流程有点麻烦,出参都需要手动转换为对象.基于以上,我们需要一个SQL执行工具,能 ...
- Java事务处理
Java事务处理总结 一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...
- php实现设计模式之 状态模式
<?php /*状态模式:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类.(行为模式) * * 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做 ...
- jQuery css3仿游戏网站右键环形菜单
效果展示 http://hovertree.com/texiao/jquery/86/ PC用户右键弹出环形菜单. 手机用户扫描二维码: 长安可以弹出环形菜单. 转自:http://hovertree ...
- css3 transition属性
最近打算学习css3知识,觉得css3写出来的效果好炫好酷,之前一直想要学习来着.可能之前的决心,毅力,耐心不够,所以想要重整起来,放下浮躁的心态,一步一个脚印,踏踏实实的来学习. 首先学习的是css ...
- 全国SHP地图数据赠送
百度搜索:GIS之家获取全国SHP图层数据的方式:收藏(ArcGIS地图全国电子地图shp格式版本GIS地图数据.GIS开发顺德政府GIS公共服务共享平台),并且截图验证,验证通过后,收下邮箱,我把下 ...
- APP级别处理未捕获异常
前言: 项目APP有时候会出现Crash,然后就是弹出系统强制退出的对话框,点击关闭APP. 有的APP进行了处理,会发现,当程序出现异常的时候,会Toast一个提示"程序出现异常,3秒后将 ...
- python进行mp3格式判断
python进行mp3格式判断 项目中使用mp3格式进行音效播放,遇到一个mp3文件在程序中死活播不出声音,最后发现它是wav格式的文件,却以mp3结尾.要对资源进行mp3格式判断,那么如何判断呢,用 ...