首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

JSP 連接 DB2 資料庫完整範例與關鍵步驟解析

     編輯:DB2 教學

前言

在網路上關於 JSP 連接 DB2 資料庫的資料雖多,但許多範例存在錯誤,導致無法成功建立連線。本文整理實測可行的完整程式碼,並針對關鍵設定(如驅動程式註冊、連線字串格式、資源釋放)進行詳細說明,供開發者參考。

環境需求

  • 作業系統:AIX 4.3(範例環境,亦適用於 Linux/Windows)
  • 資料庫:DB2 7.2 以上版本
  • JDK:1.3 或更新版本
  • Web 容器:Tomcat 4.1.6 或更新版本
  • JDBC 驅動:DB2 JDBC Type 2 驅動(COM.ibm.db2.jdbc.app.DB2Driver)

完整 JSP 程式碼範例

<%@ page session="false" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<html>
<head><title>DB2 連線測試</title></head>
<body>
<%
    // 1. 設定連線參數
    String url = "jdbc:db2:ch";          // 格式:jdbc:db2:資料庫別名
    String user = "db2inst1";            // 實例擁有者帳號
    String passWord = "db2inst1";        // 密碼

    // 2. 關鍵步驟:顯式註冊 DB2 Type 2 驅動
    // 不同於 Oracle 等資料庫常用 Class.forName(),DB2 建議直接實例化驅動並註冊
    DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver());

    Connection conn = null;
    try {
        // 3. 取得連線
        conn = DriverManager.getConnection(url, user, passWord);
        Statement stmt = conn.createStatement();

        // 4. 執行查詢
        String sql = "SELECT * FROM TASK";
        ResultSet rs = stmt.executeQuery(sql);
%>
        <table border="1" cellspacing="1" cellpadding="3">
            <tr>
                <th>欄位 1</th><th>欄位 2</th><th>欄位 3</th>
                <th>欄位 4</th><th>欄位 5</th><th>欄位 6</th>
            </tr>
<%
        while (rs.next()) {
%>
            <tr>
                <td><%= rs.getString(1) %></td>
                <td><%= rs.getString(2) %></td>
                <td><%= rs.getString(3) %></td>
                <td><%= rs.getString(4) %></td>
                <td><%= rs.getString(5) %></td>
                <td><%= rs.getString(6) %></td>
            </tr>
<%
        }
        // 5. 關閉 ResultSet 與 Statement
        rs.close();
        stmt.close();
    } finally {
        // 6. 確保連線一定被關閉
        if (conn != null) {
            try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }
        }
    }
%>
        </table>
</body>
</html>

關鍵點解析

1. JDBC URL 格式

jdbc:db2:ch 中的 ch 是在 DB2 客戶端目錄中編目的資料庫別名,而非實體資料庫名稱。請確認已透過 db2 catalog database 指令正確設定。

2. 驅動程式註冊方式

DB2 Type 2 驅動(本地連線)必須使用 DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver()) 顯式註冊。若改用 Class.forName() 可能導致 No Suitable Driver 錯誤。

3. 資源管理最佳實務

  • 使用 try-finally 區塊保證連線關閉。
  • 依序關閉 ResultSet、Statement、Connection。
  • 將物件參考設為 null 協助 GC 回收(選擇性)。

4. 常見問題排查

  • UnsatisfiedLinkError:確認 db2jdbc.dll(Windows)或 libdb2jdbc.so(UNIX)存在於 java.library.path 或 LIBPATH 中。
  • 連線被拒絕:檢查 DB2 實例是否啟動(db2start)、監聽埠是否正確(預設 50000)、防火牆設定。
  • 中文亂碼:建立資料庫時指定 CODESET IBM-eucCN TERRITORY CN,且 JVM 環境編碼一致。

延伸應用建議

  • 生產環境建議改用 連線池(如 DBCP、HikariCP)管理連線,避免頻繁建立/關閉開銷。
  • 採用 PreparedStatement 防止 SQL 注入並提升效能。
  • 若為遠端連線,請改用 DB2 Type 4 驅動(com.ibm.db2.jcc.DB2Driver),URL 格式為 jdbc:db2://host:port/dbname。

結語

掌握 DB2 JDBC Type 2 驅動的正確註冊方式與資源釋放流程,即可在 JSP/Servlet 中穩定存取 DB2 資料庫。本範例已在 AIX + DB2 7.2 + Tomcat 4.1 環境實測通過,可直接套用至專案中。

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