首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Eclipse 連接 Oracle 11g 圖文教程:JDBC 驅動配置與連接代碼實戰

     編輯:Oracle 資料庫相關知識

在 Eclipse 中開發 Java 應用連接 Oracle,核心步驟是:**專案加入 JDBC 驅動 JAR** → **編寫連接類 (載入驅動、建立連線、關閉資源)** → **配置正確的 JDBC URL (參考 tnsnames.ora)**。本文提供完整圖文步驟與可直接運行的代碼。

一、環境準備

  • Eclipse IDE (任意版本)
  • Oracle 11g Client/Server 安裝目錄 (含 ojdbc6.jar 或 ojdbc14.jar)
  • 已建立資料庫實例、監聽器正常、防火牆放行 1521 埠

二、專案加入 JDBC 驅動

  1. 右鍵專案 → Build Path → Configure Build Path
  2. Libraries 頁籤 → Add External JARs...
  3. 選擇 $ORACLE_HOME/jdbc/lib/ojdbc6.jar (JDK 6/7/8) 或 ojdbc14.jar (JDK 1.4/5)
  4. 點擊 OK 完成

Eclipse Build Path 加入 JAR

三、JDBC 連接類完整代碼

package com.wuy;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectOracle {
    private Connection con;
    private String user = "scott";
    private String password = "18233188050";
    private String className = "oracle.jdbc.driver.OracleDriver";
    // Thin 驅動 URL 格式:jdbc:oracle:thin:@::
    // 必須與 tnsnames.ora 中的 HOST、PORT、SID/Service_Name 一致
    private String url = "jdbc:oracle:thin:@hr-PC:1521:orcl";

    public ConnectOracle() {
        try {
            Class.forName(className);
            System.out.println("載入資料庫驅動成功!");
        } catch (ClassNotFoundException e) {
            System.out.println("載入資料庫驅動失敗!");
            e.printStackTrace();
        }
    }

    /** 建立資料庫連接 */
    public Connection getCon() {
        try {
            con = DriverManager.getConnection(url, user, password);
            System.out.println("建立資料庫連接成功!");
        } catch (SQLException e) {
            System.out.println("建立資料庫連接失敗!");
            e.printStackTrace();
            con = null;
        }
        return con;
    }

    public void close() {
        try {
            if (con != null) {
                con.close();
                System.out.println("關閉連接成功!");
            }
        } catch (SQLException e) {
            System.out.println("關閉連接失敗!");
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ConnectOracle c = new ConnectOracle();
        c.getCon();
        c.close();
    }
}

四、關鍵配置說明:JDBC URL 與 tnsnames.ora 對應

tnsnames.ora 範例 (位於 $ORACLE_HOME/network/admin/tnsnames.ora):

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hr-PC)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

tnsnames.ora 內容

URL 對應關係:

  • hr-PC → HOST
  • 1521 → PORT
  • orcl → SERVICE_NAME (或 SID,視實例配置)

⚠️ 必須依 tnsnames.ora 實際內容填寫 URL,否則會出現 ORA-12505、ORA-12514、ORA-12541 等連線錯誤。

五、常見錯誤與排查

錯誤原因對策
ClassNotFoundExceptionJAR 未加入 Build Path 或版本不符 JDK確認 ojdbc 版本對應 JDK (ojdbc6→JDK6+,ojdbc8→JDK8+)
ORA-12505SID/Service Name 錯誤,監聽器無此服務核對 tnsnames.ora SERVICE_NAME/SID,lsnrctl status 確認
ORA-12541無監聽器 / 監聽器未啟動啟動監聽器 lsnrctl start,檢查防火牆
ORA-12514監聽器無法解析服務名檢查 SERVICE_NAME 拼寫、實例是否註冊到監聽器
ORA-28000帳號鎖定ALTER USER scott ACCOUNT UNLOCK;

六、運行結果驗證

Console 輸出:載入驅動成功、建立連接成功

Console 輸出:

載入資料庫驅動成功!
建立資料庫連接成功!
關閉連接成功!

七、進階:連接池 (DBCP/HikariCP) 生產環境必備


spring:
  datasource:
    url: jdbc:oracle:thin:@hr-PC:1521:orcl
    username: scott
    password: 18233188050
    driver-class-name: oracle.jdbc.OracleDriver
    hikari:
      maximum-pool-size: 20
      minimum-idle: 5
      connection-timeout: 30000

生產環境**禁止**直接用 DriverManager.getConnection,必須使用成熟連接池 (HikariCP、Druid、DBCP2)。

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