Java在Orcale中的数据库分页分四块

首先我们需要一个PageBean中需要声明六个成员变量,剩下的就是set,get方法;

public class PageBean {
 private int pagesize;//分页单位
 private int pagenow;//当前页
 private int rowstart;//起始行
 private int rowend;//结束行
 private int pageall;//总页数
 private int rows;//总行数
 private List<Map<String,Object>> list;

...................................

省略
 }

在我们的业务处理中我们需调用

   //------分页方法开始
  String pagenow1=request.getParameter("pagenow");//在jsp页面获取页码数
    int pagenow=0;
  if(pagenow1==null){ //初始为一
   pagenow=1;
  }else{
   pagenow=Integer.parseInt(pagenow1);
  }
  String sql="select * from member";  //想给数据库中的哪张表分页  就拼哪个SQL
  DBUtil dbu=new DBUtil();          //jdbc工具类
  PageBean pb=new PageBean();   
  pb=dbu.getPage(sql,pagenow,5); //dbu.getPage(哪张表,页码,一页记录数)  
  request.setAttribute("pb", pb);
  request.getRequestDispatcher("hsshoutai/files/listhuiyuan.jsp").forward(request, response);

在工具类中 DBUtil中写的分页方法

//分页查询方法
 public PageBean getPage(String sql,int pagenow,int pagesize){   //三个参数
  PageBean pb=new PageBean();
  pb.setPagenow(pagenow);   
  pb.setPagesize(pagesize);
  pb.setRowstart((pagenow-1)*pagesize+1);        //计算某页的起始行
  pb.setRowend(pb.getRowstart()+pagesize-1);    //计算某页的结束行
  pb.setRows(queryToList(sql).size());                  //工具类中的查询数据库行数的方法,总记录数
  pb.setPageall(pb.getRows()%pagesize==0?pb.getRows()/pagesize:pb.getRows()/pagesize+1);
  String sql2="select * from (select t.*,rownum as rowindex from ("+sql+")t where rownum<="+pb.getRowend()+") where rowindex>="+pb.getRowstart();
  pb.setList(queryToList(sql2));
  return pb;
 }

 在jsp页面  我们千万不要忘记把Pagenow的值传回来

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/hsshoutai/files/";
PageBean pb=(PageBean)request.getAttribute("pb");
int pageall=pb.getPageall();
%>

在用js去获取本页码等等

在table中去写上一页,下一页,首页,尾页,跳页等等。