Servlet 是 Java 语言中用于处理 HTTP 请求和响应的服务器端组件。它运行在 Web 服务器或应用服务器上,用于扩展服务器的功能。MySQL 是一种流行的关系型数据库管理系统(RDBMS),广泛用于存储和管理数据。
HttpServlet
和 GenericServlet
。HttpServlet
是专门用于处理 HTTP 请求的 Servlet。以下是一个简单的 Servlet 示例,展示如何使用 JDBC 连接 MySQL 数据库并执行查询:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class MyServlet extends HttpServlet {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String USER = "username";
private static final String PASS = "password";
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 注册 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 打开连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
stmt = conn.createStatement();
String sql = "SELECT id, name, age FROM users";
rs = stmt.executeQuery(sql);
// 处理结果集
PrintWriter out = response.getWriter();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
out.println("ID: " + id + ", Name: " + name + ", Age: " + age + "<br>");
}
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) rs.close();
} catch (SQLException se2) {
}
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
finally
块中关闭所有打开的资源(如 ResultSet
、Statement
和 Connection
),以避免资源泄漏。通过以上信息,您应该能够理解 Servlet 和 MySQL 查询的基础概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云