faetbwac

Javaweb分页

分页的基本方法有数据库分页、mybatisplus分页、pageHelper、jsp手写分页,这里介绍最简单(麻烦)的jsp手写分页,不涉及复杂的操作,仅仅是前端逻辑。

  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>

分类:

技术点:

相关文章:

  • 2021-07-29
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-07-06
  • 2022-02-21
猜你喜欢
  • 2021-07-11
  • 2021-09-01
  • 2021-12-05
  • 2021-05-30
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案