oracle学习笔记(四)--oracle分页显示

我是按照韩顺平老师的视频进行学习oracle数据库,今天学习了oracle分页,有三种分页方式,下面我运用其中的一种进行练习。


// oracle 分页:按照rownum分页

   1,rownum 分页第一步

      (select * from emp)

   2,显示 rownum[oracle分配的]

     select a1.*,rownum rn from (select * from emp)a1;

   3,如果查询的数据是小于等于 10 的数据。
       select a1.*,rownum rn from (select * from emp)a1 where rownum<=10;

   4,如果查询的数据是小于等于 10 大于等于 6 的数据。
       select * from(select a1.*,rownum rn from (select * from emp)a1 where rownum<=10)where rn>=6;


   注意:几个查询变化
     
        a:指定查询列,只需修改最里层的子查询(select * from emp)比如:select sal,

        b:如何排序,只需修改最里层的子查询

 

oracle分页实例代码如下(查询的表名是mytable):

  <body>
  <h2>--分页案例--</h2>
    <table>
      <tr>
      <td>编号:</td>
      <td>姓名:</td>
      <td>薪水:</td>
      </tr>
      
      <%      
      //1.连接驱动
      Class.forName("oracle.jdbc.driver.OracleDriver");
      //2,连接数据库
      Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@172.28.150.111:1521:MYDB01","system","Admin123");
      //3,获取statement对象
      Statement st=conn.createStatement();
      //4,获取结果集
       ResultSet rs=st.executeQuery("select count(*) from mytable");
        
         //接收超链接中传递的数据,本例中是pageNow
         String s_pageNow=(String)request.getParameter("pageNow");
         int pageNow=1;
         if(s_pageNow!=null){
          pageNow=Integer.parseInt(s_pageNow);
         }
         
       //查询总页数
        int pageCount=0;//一共分成几页
        int rowCount=0; //共有几条记录
        int pageSize=3; //每页显示几条记录
        
        if(rs.next()){
         rowCount=rs.getInt(1);
         if(rowCount%pageSize==0){
           pageCount=rowCount/pageSize;
         }else{
           pageCount=rowCount/pageSize+1;
         }     
        }
      
       rs=st.executeQuery("select * from (select a1.*,rownum rn from (select * from mytable) a1 where rownum<="+(pageNow*pageSize)+")where rn>="+((pageNow-1)*pageSize+1));
      
      while(rs.next()){
      out.println("<tr>");
        out.println("<td>"+rs.getString(1)+"</td>");
        out.println("<td>"+rs.getString(2)+"</td>");
        out.println("<td>"+rs.getString(6)+"</td>");
       out.println("</tr>");
      }
      
      //5,关闭所有资源
      rs.close();
      st.close();
      conn.close();
       %>
      
    </table>
    
    <%
    //分页显示的超连接 
      for(int i=1;i<=pageCount;i++){
       out.println("<a href=MyJsp01.jsp?pageNow="+i+" > ["+i+"] </a>");
      } 
      out.print("<br/>");
       out.println("共有"+rowCount+"条数据, 每页显示"+pageSize+"条数据, 一共显示"+ pageCount+"页。");
     %>    
  </body>

 

显示效果如下:


oracle学习笔记(四)--oracle分页显示
 

 

 

 

你可能感兴趣的:(oracle,jdbc,分页)