jsp数据库查询分页技术

来源:互联网 发布:灵玖软件 编辑:程序博客网 时间:2024/05/09 18:32

package bean;

public class Page {
 private int totalPage;//总页数
 private int currentPage;//当前页数
 private int totalRecord;//总记录条数
 private int currentRecord;//当前记录数
 private int pageSize=1;//每页显示的记录数
 
 public int getCurrentPage() {
  return currentPage;
 }
 
 public void setCurrentPage(int PcurrentRecord,int PpageSize) {
  if(currentRecord%pageSize==0)
   currentPage=currentRecord/pageSize;
  else
   currentPage=currentRecord/pageSize+1;
 }
 
 public int getCurrentRecord() {
  return currentRecord;
 }
 
 public void setCurrentRecord(int PcurrentRecord) {
  currentRecord=PcurrentRecord;
 }
 
 public int getPageSize() {
  return pageSize;
 }
 
 public void setPageSize(int PpageSize) {
  pageSize=PpageSize;
 }
 
 public int getTotalPage() {
  return totalPage;
 }
 
 public void setTotalPage(int PtotalRecord,int PpageSize) {
  if(PtotalRecord%PpageSize==0)
   totalPage=PtotalRecord/PpageSize;
  else
   totalPage=PtotalRecord/PpageSize+1;
 }
 
 public int getTotalRecord() {
  return totalRecord;
 }
 
 public void setTotalRecord(int PtotalRecord) {
  totalRecord=PtotalRecord;
 }
}

 

 

 

<%@page import="java.util.List"%>
<%@page import="bean.Guest"%>
<%@page import="java.util.ArrayList"%>
<%@ page contentType="text/html; charset=utf-8" language="java"
 import="java.sql.*" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<jsp:useBean id="db" class="bean.ORMDBUtil" scope="page"></jsp:useBean>
<jsp:useBean id="pager" class="bean.Page" scope="page"></jsp:useBean>
<%
 String sql = "select * from guests";
 int currentRecord = 0;
 ArrayList<Guest> result = db.select(sql);
 pager.setTotalRecord(result.size());
 pager.setTotalPage(result.size(), pager.getPageSize());

 if (request.getParameter("currentRecord") != null) {
  currentRecord = Integer.parseInt(request.getParameter("currentRecord"));
  pager.setCurrentRecord(currentRecord);
  pager.setCurrentPage(currentRecord, pager.getPageSize());
 }

 //取出当前页面要显示的子集
 List<Guest> subResult = null;
 if (currentRecord == 0);
  subResult = result.subList(0, pager.getPageSize());
 if (pager.getCurrentRecord() + pager.getPageSize() < result.size())
  subResult = result.subList(pager.getCurrentRecord(),
    pager.getCurrentRecord() + pager.getPageSize());
 else
  subResult = result.subList(pager.getCurrentRecord(),
    result.size());
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>分页显示JavaBean使用示例</title>
</head>

<body>
<font size="+2"><strong>本页利用JavaBean实现分页显示功能。</strong><br />
下面的表格就是运行结果 </font>
<table width="387" border="1" height="47">
 <tr>
  <td height="41">编号</td>
  <td>姓名</td>
  <td>电话</td>
  <td>email</td>
 </tr>
 <%
  if (subResult.isEmpty() == false) {
   for (int i = 0; i < subResult.size(); i++) {
    Guest guest = subResult.get(i);
    out.print("<tr>");
    out.print("<td>" + guest.getId() + "</td>");
    out.print("<td>" + guest.getCname() + "</td>");
    out.print("<td>" + guest.getPhone() + "</td>");
    out.print("<td>" + guest.getEmail() + "</td>");
    out.print("</tr>");
   }
  }
 %>
</table>
<span><font size="+2">总<%=pager.getTotalRecord()%>条记录|总<%=pager.getTotalPage()%>页|当前<%=pager.getCurrentPage() + 1%>页|每页
<%=pager.getPageSize()%>条| <%
 if (pager.getCurrentRecord() - pager.getPageSize() < 0)
  out.print("首页|");
 else
  out.print("<a href='PageQuery.jsp?currentRecord="
    + (pager.getCurrentRecord() - pager.getPageSize())
    + "&pageSize=" + pager.getPageSize() + "'>上一页,</a>|");

 if (pager.getCurrentRecord() + pager.getPageSize() > pager
   .getTotalRecord())
  out.print("尾页");
 else
  out.print("<a href='PageQuery.jsp?currentRecord="
    + (pager.getCurrentRecord() + pager.getPageSize())
    + "&pageSize=" + pager.getPageSize() + "'>下一页</a>|");
%>
</font></span>
</body>
</html>