JSP如何查询MySQL数据:从连接到展示的完整指南
JSP查询MySQL数据的核心是通过JDBC驱动建立数据库连接,然后使用SQL语句执行查询,并将结果集在JSP页面中动态展示。 这一过程涉及环境配置、代码编写和结果处理三个关键环节,下面将详细说明每个步骤的实现方法。
环境准备与配置
在开始编写JSP查询代码前,需要确保开发环境已正确配置:

- 安装MySQL数据库并创建数据库和表
- 下载MySQL JDBC驱动(mysql-connector-java.jar)
- 将JDBC驱动放置到Web项目的WEB-INF/lib目录中
- 确保Web服务器(如Tomcat)正常运行
建立数据库连接
在JSP页面中,首先需要加载JDBC驱动并创建数据库连接:
<%@ page import="java.sql.*" %>
<%
Connection conn = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=UTC";
String user = "用户名";
String password = "密码";
conn = DriverManager.getConnection(url, user, password);
} catch(Exception e) {
out.println("数据库连接失败:" + e.getMessage());
}
%>
执行SQL查询语句
建立连接后,可以通过创建Statement对象执行查询:
<%
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
String sql = "SELECT * FROM 表名 WHERE 条件";
rs = stmt.executeQuery(sql);
// 处理查询结果
while(rs.next()) {
String column1 = rs.getString("列名1");
int column2 = rs.getInt("列名2");
// ... 其他列数据
}
} catch(SQLException e) {
out.println("查询出错:" + e.getMessage());
}
%>
在页面中展示查询结果
将查询结果以表格形式展示是最常见的做法:
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
</tr>
<%
while(rs.next()) {
%>
<tr>
<td><%= rs.getInt("id") %></td>
<td><%= rs.getString("name") %></td>
<td><%= rs.getString("email") %></td>
</tr>
<%
}
%>
</table>
资源释放与异常处理
务必在查询完成后关闭数据库资源,避免内存泄漏:
<%
finally {
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch(SQLException e) {
out.println("资源关闭出错:" + e.getMessage());
}
}
%>
最佳实践建议
- 使用连接池(如DBCP、C3P0)提高性能
- 采用预编译语句(PreparedStatement) 防止SQL注入攻击
- 将数据库操作封装在JavaBean或DAO层,避免在JSP中编写过多Java代码
- 添加分页功能处理大量数据查询
- 实施完整的异常处理机制,确保系统稳定性
完整示例代码
以下是一个简单的完整示例,查询用户信息并展示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>JSP查询MySQL数据示例</title>
</head>
<body>
<h2>用户信息列表</h2>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb", "root", "password");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, username, email FROM users");
%>
<table border="1" cellpadding="5">
<tr>
<th>ID</th>
<th>用户名</th>
<th>电子邮箱</th>
</tr>
<% while(rs 未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/14479.html发布于:2026-09-02





