<%@ 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;
else
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>