首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 搭配 JDBC 實現資料庫 CRUD 核心流程詳解

     編輯:關於JSP

JDBC (Java Database Connectivity) 是 JSP 存取關聯式資料庫的標準 API。本文梳理 JDBC 三大核心能力、ODBC 橋接器與原生驅動兩種連線模式、資料源配置、查詢記錄完整流程,奠定 JSP 資料庫開發基石。

JDBC 三大核心任務

  1. 建立資料庫連線
  2. 發送 SQL 語句
  3. 處理回傳結果集

兩種連線模式

模式原理優點缺點
JDBC-ODBC 橋接器JDBC → ODBC 驅動 → DB支援幾乎所有有 ODBC 驅動的 DB效能較差、需配置 DSN、已被 Java 8 移除
原生 JDBC 驅動 (Type 4)JDBC 直連 DB 協議 (純 Java)效能最佳、無需客戶端配置、跨平台需各 DB 廠商提供驅動 Jar
現代專案強制使用原生驅動 (MySQL Connector/J、Oracle ojdbc、PostgreSQL JDBC 等),橋接器僅供維護舊系統參考。

資料源配置 (以 ODBC 為例,歷史參考)

  1. 控制台 → 系統管理工具 → 資料來源 (ODBC) → 系統 DSN → 新增 → 選擇驅動 → 設定資料庫名、認證。
  2. 程式碼載入橋接器:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

查詢記錄標準流程 (原生驅動模式)

<%
// 1. 載入驅動 (JDBC 4.0+ 可省略,自動發現)
Class.forName("com.mysql.cj.jdbc.Driver");

// 2. 建立連線
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(url, "user", "pass");

// 3. 建立 Statement
Statement stmt = conn.createStatement();

// 4. 執行查詢
ResultSet rs = stmt.executeQuery("SELECT id, name, email FROM users ORDER BY id");

// 5. 處理結果集
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String email = rs.getString("email");
    out.println(id + " | " + name + " | " + email + "<br>");
}

// 6. 關閉資源 (逆序關閉,建議用 try-with-resources JDK 7+)
rs.close();
stmt.close();
conn.close();
%>

進階必要技巧

  • PreparedStatement:防 SQL 注入、提升重複執行效能:ps = conn.prepareStatement("SELECT * FROM users WHERE id=?"); ps.setInt(1, uid);
  • 連線池:生產環境必須使用 (HikariCP、Druid、Tomcat JDBC Pool),避免頻繁建立/關閉連線開銷。
  • 事務控制:conn.setAutoCommit(false); 多條 SQL 視為單一交易,conn.commit()/rollback();
  • 資源管理:JDK 7+ 採用 try-with-resources 自動關閉:try (Connection c = ...; Statement s = c.createStatement(); ResultSet r = s.executeQuery(sql)) { ... }

從 JDBC 到現代架構

純 JSP + JDBC 易導致業務邏輯與資料存取混雜。建議演進路徑:

  1. DAO 模式封裝 JDBC 操作
  2. 引入連線池管理連線生命週期
  3. 採用 MyBatis/JPA 等 ORM 框架簡化映射
  4. Spring 管理事務與依賴注入

掌握 JDBC 核心流程,是理解上層框架運作原理、排查資料庫效能問題的前提。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved