分页显示数据

index.jsp

 

"<%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" errorPage="" %>"

<html>

<head>

<title>分页显示</title>

</head>

<body>

<font size=4>

<br><center><b>分页显示学生成绩表</b><hb><br>

<table border=2 width=500>

<tr align=center>

<td><b>学号</b></td>

<td><b>姓名</b></td>

<td><b>数学成绩</b></td>

<td><b>英语成绩</b></td>

<td><b>语文成绩</b></td>

<td><b>总成绩</b></td>

</tr>

<%

//加载驱动程序。

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

//连接数据库。

Connection conn=DriverManager.getConnection("jdbc:odbc:stuDataBase","sa","");//stuDataBase为数据源的名称。

//声明变量。

int intPageSize;//一个页面的记录数。

int intRowCount;//记录总数。

int intPageCOUNT;//总共有的页数。

int intPage;

String strPage;

int i;

 

intPageSize=5;//设置一页显示的记录数。

strPage=request.getParameter("page");//取得要显示的页码。

if(strPage==null)

{//表名在QueryString中没有page这一个参数,此时显示第一页数据。

intPage=1;

}else

{

intPage=Integer.parseInt(strPage);

if(intPage<1)

{

intPage=1;

}

}

//创建Statement操作类。

Statement stmt=conn.createStatement(ResultSet.TYPT_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select 学号,姓名,数学,语文,英语,(数学+语文+英语) as 总成绩 from stuScore order by 总成绩 desc";//stuScore表名

//执行sql语句得到结果集ResultSet.

ResultSet rs=stmt.executeQuery(sql);

rs.last();//让记录指针指向结果集中最后一条记录。

intRowCount=rs.getRow();//获取当前数据行的行数,即为数据集的总行数。

//计算总页面。

intPageCount=(intRowCount%intPageSize==0)?(intRowCount/intPageSize):(intRowCount/intPageSize+1);

if(intPage>intPageCount)

{

intPage=intPageCount;//调整要显示的页码。

}

if(intPageCount>0)

{//有多页时,将记录指针定位到待显示页的第一条记录上。

rs.absolute((intPage-1)*intPageSize+1);

i=0;//循环显示数据。

while(i<intPageSize&&!isAfterLast())

{

%>

<tr align=center>

<td><b><%=rs.getString("学号")%></b></td>

<td><b><%=rs.getString("姓名")%></b></td>

<td><b><%=rs.getString("数学")%></b></td>

<td><b><%=rs.getString("语文")%></b></td>

<td><b><%=rs.getString("英语")%></b></td>

<td><b><%=rs.getString("总成绩")%></b></td>

</tr>

<%

rs.next();//读取下一条记录。

 i++;

}

}

%>

</table>

<hr color="#999999">

<div align="center">第<%=intPage%>页 共<%=intPageCount%>页

<%

if(intPage<intPageCount)

{

%>

<a href="index.jsp?page=<%=intPage+1%>">下一页</a>

<%}%>

<%if(intPage>1){%>

<a href="index.jsp?page=<%=intPage-1%>">上一页</a>

<%}%>

<%

rs.colse();

stmt.close();

conn.close();

%>

</div>

</center>

</font>

</body>

</html> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值