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 其 ...
随机推荐
- ChatSecure
ChatSecure是一个免费和开源消息传递应用程序的特性 OTR加密在 XMPP. 你可以连接到现有的谷歌帐户或创建新帐户 公共XMPP服务器(包括通过 Tor),甚至 连接到您自己的服务器额外的安 ...
- Eclipse复制时的中文乱码问题
点击"Project"--"Properties"--"Resource",在其中改变"Text file encoding&qu ...
- python征程3.1(列表,迭代,函数,dic,set,的简单应用)
1.列表的切片. 1.对list进行切片.'''name=["wangshuai","wangchuan","wangjingliang", ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 8.总体控制器的设计
目 录 第八章 总体控制器的设计... 2 8.1 总控制器的职能... 2 8.2 组装和释放部件... 3 8.3 ...
- Jquery 页面间传值(非QuerryString)
实现原理: 实现方式不是很复杂,父页面A打开一个子页面 A1,并同时写一个带参数的接收数据函数Receive(result),在A1页面进行逻辑操作,然后调用父页面A的Receive(result)函 ...
- 纯css3圆形从中心向四周扩散动画效果
查看效果:http://hovertree.com/texiao/css3/37/ 先来个简单的示例,例如: @keyframes hovertreemove{from {top:30px;}to { ...
- Microsoft Dynamics CRM 2013 Js Odata 查询
实现功能: 在新建记录时,(大区,省区,城市)的值默认为当前用户的值.tips:字段均为lookup类型; function Default_region(){ var fromtype=Xrm. ...
- 学习Maven之Maven Clean Plugin
1.maven-clean-plugin是个什么鬼? maven-clean-plugin这个插件用maven的人都不陌生.我们在执行命令mvn clean时调用的就是这个插件. 这个插件的主要作用就 ...
- nginx端口占用案例分享
这里分享一个案例,问题的原因是反向代理使用不当. 现象 首先描述一下问题的现象.当时的问题是应用启动失败,日志里面报错显示端口占用.我们的应用都是通过脚本发布的,之前发布过多次都没有出现过问题.那么同 ...
- GUID生成器
这个GUID生成器是一个小巧的软件,属于笔者在空余时间开发的. http://pan.baidu.com/s/1sk6VGpn