打印本文 打印本文  关闭窗口 关闭窗口  
JAVA技巧(Java实用分页代码)
作者:佚名  文章来源:不详  点击数  更新时间:2008/11/1 20:42:03  文章录入:杜斌  责任编辑:杜斌

  代码如下:
  //实体类代码
  package Test;
  public class UserInfo {
  private int id;
  private String name;
  private int age;
  public int getAge() {
  return age;
  }
  public void setAge(int age) {
  this.age = age;
  }
  public int getId() {
  return id;
  }
  public void setId(int id) {
  this.id = id;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  }
  //数据库访问类代码
  package Test;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.util.ArrayList;
  public class UserDao {
  public static ArrayList<UserInfo> getUsers(int pagesize, int pagenum) {
  String sql = "select top " + pagesize + " * from userinfo"
  + " where id not in " + "(select top "
  + ((pagenum - 1) * pagesize) + " id from userinfo order by id)"
  + " order by id";
  ArrayList<UserInfo> al = new ArrayList<UserInfo>();
  try {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  } catch (ClassNotFoundException e) {
  e.printStackTrace();
  }
  Connection conn = null;
  PreparedStatement pst = null;
  ResultSet rs = null;
  try {
  conn = DriverManager.getConnection("jdbc:odbc:test");
  pst = conn.prepareStatement(sql);
  rs = pst.executeQuery();
  while (rs.next()) {
  UserInfo user = new UserInfo();
  user.setId(rs.getInt("id"));
  user.setName(rs.getString("name"));
  user.setAge(rs.getInt("age"));
  al.add(user);
  }
  } catch (SQLException e) {
  // TODO Examda提示自动生成 catch 块
  e.printStackTrace();
  } finally {
  try {
  if (rs != null)
  rs.close();
  if (pst != null)
  pst.close();
  if (conn != null)
  conn.close();
  } catch (SQLException e) {
  // TODO 自动生成 catch 块
  e.printStackTrace();
  }
  }
  return al;
  }
  public static int getCount() {
  String sql = "select count(*) from userinfo";
  int count = 0;
  try {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  } catch (ClassNotFoundException e) {
  e.printStackTrace();
  }
  Connection conn = null;
  PreparedStatement pst = null;
  ResultSet rs = null;
  try {
  conn = DriverManager.getConnection("jdbc:odbc:test");
  pst = conn.prepareStatement(sql);
  rs = pst.executeQuery();
  rs.next();
  count = rs.getInt(1);
  } catch (SQLException e) {
  // TODO 自动生成 Examda提示catch 块
  e.printStackTrace();
  } finally {
  try {
  if (rs != null)
  rs.close();
  if (pst != null)
  pst.close();


  if (conn != null)
  conn.close();
  } catch (SQLException e) {
  // TODO 自动生成 catch 块
  e.printStackTrace();
  }
  }
  return count;
  }
  }
  //网页上分页代码
  //采用电骡verycd网站上的css(blog.css.r12631和blog.css.r12631)
  //请各位自行去verycd另存后查找
  package Test;
  public class Pager {
  public static String getPager(int total,int pagesize,int pagenum)
  {
  int count = total/pagesize;
  if (total%pagesize>0)
  count++;
  StringBuffer buf = new StringBuffer();
  buf.append("<DIV class=\"pages-nav\" style=\"margin: 10px 7px 0px 0px;padding:0 0 20px 0px!important;padding-bottom:0;\">");
  if (pagenum==1)
  buf.append("<SPAN class=\"next\">« 上一页</SPAN>");
  else
  buf.append("<A href=\"?pagenum="+(pagenum-1)+"\" class=\"next\">上一页 »</A>");
  int bound1 = ((pagenum-2)<=0)?1:(pagenum-2);
  int bound2 = ((pagenum+2)>=count)?count:(pagenum+2);
  for(int i=bound1;i<=bound2;i++)
  {
  if (i==pagenum)
  buf.append("<SPAN class=\"current\">"+i+"</SPAN>");
  else
  buf.append("<a href='?pagenum="+i+"'>"+i+"</a>");
  }
  if (bound2<count)
  buf.append("<SPAN>...</SPAN>");
  if (pagenum==count)
  buf.append("<SPAN class=\"next\">« 下一页</SPAN>");
  else
  buf.append("<A href=\"?pagenum="+(pagenum+1)+"\" class=\"next\">下一页 »</A>");
  buf.append("</DIV>");
  return buf.toString();
  }
  }
  //JSP网页上的调用代码
  //使用JSTL1.1
  //采用电骡verycd网站上的css(blog.css.r12631和blog.css.r12631)
  //请各位自行去verycd另存后查找
  <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  <%@page import="Test.UserInfo"%>
  <%@page import="Test.UserDao"%>
  <%@page import="Test.Pager"%>
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
  <title>My JSP 'MyJsp.jsp' starting page</title>
  <LINK type="text/css" rel="stylesheet" media="all" href="global.css.r12653">
  <LINK rel="stylesheet" href="blog.css.r12631" type="text/css" media="all">
  </head>
  <body>
  <%
  int pagesize = 3;
  int pagenum = 1;
  if (request.getParameter("pagenum") != null)
  pagenum = Integer.parseInt(request.getParameter("pagenum"));
  ArrayList<UserInfo> al = UserDao.getUsers(pagesize, pagenum);
  request.setAttribute("users", al);
  %>
  <table>
  <c:forEach items="${users}" var="user">
  <tr>
  <td>
  <c:out value="${user.id }"></c:out>
  </td>
  <td>
  <c:out value="${user.name }"></c:out>
  </td>
  <td>
  <c:out value="${user.age }"></c:out>
  </td>
  </tr>
  </c:forEach>
  </table>
  <br>
  <%= Pager.getPager(UserDao.getCount(),pagesize,pagenum) %>
  </body>
  </html>
打印本文 打印本文  关闭窗口 关闭窗口