Myeclipse+oracle分页查询

来源:互联网 发布:unity3d户型模型 编辑:程序博客网 时间:2024/04/30 02:53

分页查询在项目中经常用到的,下面来介绍一下分页查询,下面以oracle数据库为例,用MyEclipse连接,通过JDBC的方式访问数据库,Oracle数据库,我们可以采用rownum的方式进行分页。

①    首先进行和oracle数据库的连接,详细步骤http://jingyan.baidu.com/article/fdbd42771d92b0b89e3f489d.html,还需要添加jar包, 下面连接的数据库及密码:scott/tiger;

②代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*" %><html>  <head>    <title>Search Page</title>  </head>  <body>  <%!  String DBDriver="oracle.jdbc.OracleDriver";  String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";//数据库名String password="tiger";//数据库密码   %>   <%   String sql="select * from (select e.*,rownum m from ( select * from emp) e where rownum<=?) where m>=?";   String sql2="select count(*) from emp";   int pagesize=5;//显示每页显示的记录数   int pagenow=1;//当前页   int rowcount=0;   int pagecount=0;//页数   int max=0;   int min=0;   String s_pagenow=request.getParameter("pagenow");   if(s_pagenow!=null){   pagenow=Integer.parseInt(s_pagenow);   }   Class.forName(DBDriver);   Connection conn=DriverManager.getConnection(url, user, password);   PreparedStatement pst=conn.prepareStatement(sql2);   ResultSet rs=pst.executeQuery();   if(rs.next()){   rowcount=rs.getInt(1);   }   if(rowcount%pagesize==0){   pagecount=rowcount/pagesize;   }else{   pagecount=rowcount/pagesize+1;   }   min=(pagenow-1)*pagesize+1;max=pagenow*pagesize;   pst=conn.prepareStatement(sql);   pst.setInt(1, max);   pst.setInt(2, min);   rs=pst.executeQuery();   %>   <table border="1">   <tr>   <td>empno</td>   <td>ename</td>   <td>job</td>   </tr>   <%   while(rs.next()){int empno=rs.getInt(1);String ename=rs.getString(2);String job=rs.getString(3);%><tr><td><%=empno %></td><td><%=ename %></td><td><%=job %></td></tr><%}    %>    </table>    <%for(int i=1;i<=pagecount;i++){    %>    <a href=index.jsp?pagenow=<%=i %>><%=i %></a>    <%      }      %>  </body></html>


1 0
原创粉丝点击