oracle实现分页总结

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.sql.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Oracle和Jsp的分页程序</title>

</head>

<body>

 

<%

out.print("<table>");

  int pageSize =3;//每页显示3条

  int pageCount = 0;//总页数

  int intRowCount = 0;//总记录数,可通过查询得到总得多少行

  int currentPage =1;

 

try {

         Class.forName("oracle.jdbc.driver.OracleDriver");

         Connection conn = DriverManager.getConnection(

                            "jdbc:oracle:thin:@127.0.0.1:1521:ORCL", "scott", "tiger");

         Statement st = conn.createStatement();

        

         ResultSet rs2 = st.executeQuery("select count(*) totalRows from emp");//总记录数

         out.print("<tr>");

         if(rs2.next()){

                  

                   intRowCount=rs2.getInt("totalrows");

                   out.print("<td>"+"总记录数是:"+intRowCount+"</td>");

         }

         out.print("</tr>");

        

         if(intRowCount%pageSize==0){

                   pageCount=intRowCount/pageSize;

         }else{

                   pageCount=intRowCount/pageSize+1;

         }

        

        

         out.print("<tr><td>总共有"+ pageCount+"页</td></tr>");

         String StrPage=request.getParameter("page");

        

         if(StrPage==null){

    currentPage=1;                

         }else{

                   currentPage=Integer.parseInt(StrPage);

                   if(currentPage<1) currentPage=1;

         }

 

 

         out.print("<tr><td>姓名</td><td>薪水</td></tr>");

         ResultSet rs = st.executeQuery("select a2.* from (select a1.*, rownum rn from (select ename,sal from emp) a1 where rownum<="+currentPage*pageSize+") a2 where a2.rn>="+(pageSize*(currentPage-1)+1)+" ");

         while(rs.next()){

                  

                   out.print("<tr>");

                   out.print("<td>"+rs.getString("ename")+"</td>");

                   out.print("<td>"+rs.getString("sal")+"</td>");

                   out.print("</tr>");

         }

        

         out.print("</table>");

         for( int i=1;i<=pageCount;i++){

                   out.print("<a  href=myoracle.jsp?page="+i+">["+ i+"]</a>");

         }

         out.print("<tr><td>现在是第"+ StrPage+"页</td></tr>");

         conn.close();

         st.close();

         rs.close();

} catch (Exception e) {

         e.printStackTrace();

}

%>

</table>

 

</body>

</html>

posted @ 2011-12-06 10:44  合肥房屋托管  阅读(982)  评论(0编辑  收藏  举报