JSP怎樣將查詢的資料實現分頁操作

給你糖吃@Lee發表於2020-12-03
<%@ 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>

相關文章