jsp完成分页查询代码
时间: 2023-03-30 18:01:38 浏览: 76
以下是一个简单的 JSP 分页查询代码示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
// 获取当前页码和每页显示的记录数
int currentPage = Integer.parseInt(request.getParameter("currentPage"));
int pageSize = Integer.parseInt(request.getParameter("pageSize"));
// 计算起始记录的索引
int startIndex = (currentPage - 1) * pageSize;
// 查询总记录数
String countSql = "SELECT COUNT(*) FROM user";
PreparedStatement countStmt = conn.prepareStatement(countSql);
ResultSet countRs = countStmt.executeQuery();
countRs.next();
int totalCount = countRs.getInt(1);
// 查询当前页的记录
String dataSql = "SELECT * FROM user LIMIT ?, ?";
PreparedStatement dataStmt = conn.prepareStatement(dataSql);
dataStmt.setInt(1, startIndex);
dataStmt.setInt(2, pageSize);
ResultSet dataRs = dataStmt.executeQuery();
// 输出查询结果
out.println("<table>");
out.println("<tr><th>ID</th><th>姓名</th><th>年龄</th></tr>");
while (dataRs.next()) {
out.println("<tr>");
out.println("<td>" + dataRs.getInt("id") + "</td>");
out.println("<td>" + dataRs.getString("name") + "</td>");
out.println("<td>" + dataRs.getInt("age") + "</td>");
out.println("</tr>");
}
out.println("</table>");
// 输出分页导航
int totalPage = (int) Math.ceil((double) totalCount / pageSize);
out.println("<div>");
out.println("<a href='?currentPage=1&pageSize=" + pageSize + "'>首页</a>");
if (currentPage > 1) {
out.println("<a href='?currentPage=" + (currentPage - 1) + "&pageSize=" + pageSize + "'>上一页</a>");
}
if (currentPage < totalPage) {
out.println("<a href='?currentPage=" + (currentPage + 1) + "&pageSize=" + pageSize + "'>下一页</a>");
}
out.println("<a href='?currentPage=" + totalPage + "&pageSize=" + pageSize + "'>末页</a>");
out.println("</div>");
// 关闭数据库连接
dataRs.close();
dataStmt.close();
countRs.close();
countStmt.close();
conn.close();
%>