1. 程式人生 > 其它 >javaweb分頁(jsp)

javaweb分頁(jsp)

Javaweb分頁

  1. 連線資料庫,獲得結果集
<%
	String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
	String username = "root";
	String password = "root";
	try {
		//載入驅動
		Class.forName("com.mysql.cj.jdbc.Driver");
		//構建連線
		Connection connection = DriverManager.getConnection(url, username, password);
		//sql語句
		String sql = "select * from jdbc.users";
		//構建編譯物件(結果集設定可操作)
		PreparedStatement preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
		ResultSet.CONCUR_READ_ONLY);
		//執行sql
		ResultSet resultSet = preparedStatement.executeQuery();
		//遍歷查詢結果
	%>
  1. 構建表格,填入資料
	<table align="center" width="80%" border=1 cellspacing="0">
		<tr>
			<td>編&nbsp;&nbsp;號:</td>
			<td>使用者名稱:</td>
			<td>密&nbsp;&nbsp;碼:</td>
			<td>郵&nbsp;&nbsp;箱:</td>
			<td>日&nbsp;&nbsp;期:</td>
			<td colspan="2">操&nbsp;&nbsp;作:</td>
		</tr>

		<%
		String str = (String) request.getParameter("page");
		if (str == null)
			str = "0";
		int pagesize = 5;//頁面大小
		resultSet.last();//結果集遊標指向最後
		int recordCount = resultSet.getRow();//最後一行的行號,即總行數
		int maxPage = (recordCount % pagesize == 0) ? (recordCount / pagesize) : (recordCount / pagesize + 1);//總頁數
		int currentPage = Integer.parseInt(str);//當前頁
		if (currentPage < 1)//修正當前頁
			currentPage = 1;
		else if (currentPage > maxPage)
			currentPage = maxPage;
		resultSet.absolute((currentPage - 1) * pagesize + 1);//遊標移動到當前頁的首行
		for (int i = 1; i <= pagesize; i++) {//填入資料
		%>
		<tr>
			<td><%=resultSet.getObject("id")%></td>
			<td><%=resultSet.getObject("name")%></td>
			<td><%=resultSet.getObject("password")%></td>
			<td><%=resultSet.getObject("email")%></td>
			<td><%=resultSet.getObject("today")%></td>
			<td><a href="Delete.jsp?id=<%=resultSet.getObject("id")%>">刪除</a></td>
			<td><a
				href="Update.jsp?id=<%=resultSet.getObject("id")%>&username=<%=resultSet.getObject("name")%>&password=<%=resultSet.getObject("password")%>&email=<%=resultSet.getObject("email")%>"
				onclick="return linkClick(this)"> 修改</a></td>
		</tr>
		<%
		if (!resultSet.next())//遊標下移
			break;
		}
		%>

	</table>
  1. 製作分頁欄,關閉資料庫連線
	<br>
	<hr>
	<div style="margin-left:540px">
		當前頁數:[<%=currentPage%>/<%=maxPage%>]&nbsp;
		<%
		if (currentPage > 1) {
		%>
		<a href="Show.jsp?page=1">第一頁</a> <a
			href="Show.jsp?page=<%=currentPage - 1%>">上一頁</a>
		<%
		}
		if (currentPage < maxPage) {
		%>
		<a href="Show.jsp?page=<%=currentPage + 1%>">下一頁</a> <a
			href="Show.jsp?page=<%=maxPage%>">最後一頁</a>
		<%
		}
		resultSet.close();
		preparedStatement.close();
		connection.close();
		} catch (ClassNotFoundException | SQLException e) {
		e.printStackTrace();
		}
		%>
	</div>