天天看点

JDBC操作 SQL SERVER之数据的分页显示

<%@ page language="java" contentType="text/html; charset=gb2312"%>

<%@ page import="java.sql.*" %>

<%

     try

{

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;

}

catch(ClassNotFoundException e)

   out.print(e.toString()) ; 

%>

    int  pages=1 ;

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

    if(pram==null)

    {

     pram="1"  ;

      pages=1 ;

    }

    else

    { 

     pages=Integer.parseInt(pram) ;

    }  

<html>

<head>

<title>分页显示数据记录</title>

</head>

<body>

   Connection  c ;

   Statement  s ;

   ResultSet  r ;

   try

   {  

    int countRow= 5 ;  //每页几行

    int allCount ;//总行数

    int countPage ;//总页数

    c=DriverManager.getConnection("jdbc:odbc:testDatabase","sa","7603835") ;

    s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)  ;//可以滚动可以从结果及更新的ResultSet对象

    r=s.executeQuery("Select * from info") ;  

    r.last() ;

    allCount=r.getRow() ; //获得最大的行数

    int n=allCount%countRow;

    if(n==0)

     countPage=allCount/countRow;

     countPage=allCount/countRow+1;

    out.print("<table border  width=500 >") ;

    out.print("<tr><td colspan=2 align=center >用户信息表</td> </tr>") ;

    out.print("<tr><td width=%50>USERNAME</td><td width=%30>PASSWORD</td></tr>");

    if(pages-1==0)  

          r.first() ;//因为我们吧指针移动到了最后所以一定要移动回去

          else

         r.absolute((pages-1)*5) ; //数据指针移动到当前行的当前页的前面一行

    int i=0 ;

    while(r.next())

  out.print("<tr><td>" + r.getString(1)+"</td>");

  out.print("<td>" + r.getString(2)+"</td>") ;

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

  i++ ;

  if(i>=countRow)

   break ;

  if(pages==1)   

      out.print("<tr><td colspan=2 align=center >共" +countPage+"页,当前第"+pages+"页,<a href=NewFile.jsp?page="+(pages+1)+">下一页</a></td></tr>") ;

  else   if(pages==countPage)

   {

    out.print("<tr><td colspan=2 align=center >共" +countPage+"页,当前第"+pages+"页,<a href=NewFile.jsp?page="+(pages-1)+">上一页</a></td></tr>") ;

   }else

    out.print("<tr><td colspan=2 align=center >共" +countPage+"页,当前第"+pages+"页,<a href=NewFile.jsp?page="+(pages-1)+">上一页</a>,<a href=NewFile.jsp?page=" +(pages+1)+">下一页</a>"   +"</td></tr>") ;

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

  r.close() ;

  s.close() ;

  c.close();  //使用完毕后一定要关闭释放数据库的链接资源 否则提交页面的时候 会出现错误 

   }

   catch(Exception e)

    out.print(e.toString()) ;

</body>

</html>