JSP怎样将查询的数据实现分页操作

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>分页实例</title>
</head>
<body bgcolor="CCBBDD">
	<center>
	<h3>分页显示记录内容</h3>
	<hr>
	<table border="1" width="50%" bgcolor="cccfff" align="center">
		<tr>
			<th width="87" align="center">编号</th>
			<th width="87" align="center">姓名</th>
			<th width="87" align="center">密码</th>
			<th width="87" align="center">性别</th>
			<th width="87" align="center">家乡</th>
			<th width="87" align="center">信息</th>
		</tr>
		
		<%
			Class.forName("com.mysql.jdbc.Driver");
			String url3="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&autoReconnect=true&useSSL=false&characterEncoding=utf8";
			Connection conn3 = DriverManager.getConnection(url3, "root","123456");
			
			int intPageSize;//一页显示的记录数
			int intRowCount;//记录总数
			int intPageCount;//总页数
			int intPage;//待显示页码
			String strPage;
			int i;
			intPageSize=2;//设置一页显示的记录数
			strPage=request.getParameter("page");//取得待显示的页码
			if(strPage==null){
				//表明page的参数值为空,此时显示第一页数据
				intPage=1;
			}else{
				//将字符串转换成整型
				intPage=java.lang.Integer.parseInt(strPage);
				if(intPage<1)
					intPage=1;
			}
			
			Statement stmt=conn3.createStatement(
					ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY
					);
			String sql="SELECT * FROM user";
			ResultSet rs=stmt.executeQuery(sql);
			rs.last();//光标指向查询结果集中的最后一条记录
			intRowCount=rs.getRow();//获取记录总数
			intPageCount=(intRowCount+intPageSize-1)/intPageSize;//计算总页数
			
			if(intPage>intPageCount)
				intPage=intPageCount;//调整待显示的页码
			if(intPageCount>0){
				rs.absolute((intPage-1)*intPageSize+1);//将记录指针定位到待显示的第一条记录上
				
				//显示数据
				i=0;
				while(i<intPageSize&& !rs.isAfterLast()){
					
		%>
		
		<tr>
			<td><%=rs.getString("id") %></td>
			<td><%=rs.getString("name") %></td>
			<td><%=rs.getString("pwd") %></td>
			<td><%=rs.getString("sex") %></td>
			<td><%=rs.getString("home") %></td>
			<td><%=rs.getString("info") %></td>
		</tr>
		
		<%
			rs.next();
			i++;
				}
			}
		%>
	</table>
	
	<hr>
	<div align="center"><%=intPage %>页 共<%=intPageCount %><%
			if(intPage<intPageCount){
		%>
		<a href="pagebreak.jsp?page=<%=intPage+1 %>">下一页</a>
		<%
			}
		if(intPage>1){
		%>
		<a href="pagebreak.jsp?page=<%=intPage-1 %>">上一页</a>
		<%
		}
		rs.close();
		stmt.close();
		conn3.close();
		%>
	</div>
	</center>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值