当前位置:首页 > 数据库 > 正文

JSP如何连接SQL数据库?

在 JSP中连接 SQL数据库需使用 JDBC技术:加载对应数据库驱动,通过 DriverManager获取 Connection对象建立连接,利用 Statement或 PreparedStatement执行SQL语句,处理结果集后关闭连接释放资源。

JSP中连接SQL数据库需要遵循标准JDBC流程,以下是详细步骤和注意事项:


准备工作

  1. 安装数据库

    选择MySQL/SQL Server等数据库,下载安装并创建数据库(示例数据库名:test_db,表名:users)。

  2. 下载JDBC驱动


连接数据库的4个核心步骤

步骤1:加载数据库驱动

<%@ page import="java.sql.*" %> <% try { Class.forName("com.mysql.cj.jdbc.Driver"); // MySQL // Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // SQL Server } catch (ClassNotFoundException e) { out.println("驱动加载失败: " + e.getMessage()); } %>

步骤2:建立数据库连接

<% String url = "jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTC"; // MySQL // String url = "jdbc:sqlserver://localhost:1433;databaseName=test_db"; // SQL Server String user = "root"; String password = "your_password"; Connection conn = null; try { conn = DriverManager.getConnection(url, user, password); out.println("数据库连接成功!"); } catch (SQLException e) { out.println("连接失败: " + e.getMessage()); } %>

步骤3:执行SQL查询

<% Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); String sql = "SELECT * FROM users"; rs = stmt.executeQuery(sql); while (rs.next()) { out.println("<br>ID: " + rs.getInt("id") + ", 姓名: " + rs.getString("name")); } } catch (SQLException e) { out.println("查询错误: " + e.getMessage()); } %>

步骤4:关闭连接(关键!)

<% try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); // 释放资源 } catch (SQLException e) { out.println("关闭连接时出错: " + e.getMessage()); } %>


完整示例代码

<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head>JSP数据库连接示例</title> </head> <body> <% Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1. 加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 2. 建立连接 String url = "jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTC"; conn = DriverManager.getConnection(url, "root", "123456"); // 3. 执行查询 stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT id, name, email FROM users"); while (rs.next()) { out.println("<p>用户: " + rs.getString("name") + " | Email: " + rs.getString("email") + "</p>"); } } catch (Exception e) { out.println("<p style='color:red'>错误: " + e.getMessage() + "</p>"); } finally { // 4. 关闭连接 try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } %> </body> </html>


常见问题解决

  1. 驱动加载失败

    JSP如何连接SQL数据库? 第1张

    • 检查JAR文件是否在/WEB-INF/lib目录
    • 重启Tomcat服务器
  2. 连接拒绝(Access Denied)

    • 检查数据库用户名/密码
    • 确认数据库允许远程连接(如需要)
    • 时区错误(MySQL)

      在连接URL中添加:?serverTimezone=Asia/Shanghai

      JSP如何连接SQL数据库? 第2张

    • 安全建议

      1. 使用连接池

        避免频繁创建连接(推荐Tomcat JDBC Pool或Druid)。

      2. 防SQL载入

        使用PreparedStatement替代Statement: String sql = "SELECT * FROM users WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, userId); // 安全设置参数

      3. 敏感信息保护

        不要将数据库密码硬编码在JSP中,使用配置文件或环境变量。


      JSP连接数据库的核心是JDBC四步流程:加载驱动→建立连接→执行SQL→释放资源,务必注意资源关闭和异常处理,生产环境应使用连接池和预编译语句提升性能及安全性。

      引用说明

      JSP如何连接SQL数据库? 第3张

0