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

Java 連接 Oracle 資料庫完整指南:JDBC 驅動類型與配置實戰

     編輯:Java 相關知識

Java 與 Oracle 互動兩大接口

  • JDBC:類似 ODBC,提供驅動介面讓 Java 程式存取資料庫。驅動內嵌於資料庫 JVM 中。
  • SQLJ:Java 預編譯器,將嵌入 SQL 轉為 Java 語句,類似 Pro*C,可視為 Pro*Java。

雙向互通:Java 可呼叫 SQL/PLSQL,SQL/PLSQL 亦可呼叫 Java。Java 命名空間直接映射到資料庫 Schema。

Oracle JDBC 三大驅動類型

驅動適用場景通訊方式需安裝 Client
JDBC OCI傳統客戶端應用Oracle Call Interface + Net8是
JDBC ThinWeb Applet、無 Client 環境Java Sockets 直連否
JDBC KPRB資料庫內部 Java 預存程序/觸發器預設資料庫 Session否(已在 DB 內)

三者語法、API、Oracle 擴展完全一致,OCI 效率略高於 Thin。

環境配置步驟

  1. 安裝 Sun JDK
  2. 配置 PATH 指向 JDK bin
  3. 配置 CLASSPATH 包含 JDK lib 及 Oracle JDBC 驅動(classes12.zip 等)
  4. 驗證 `java -version`

各作業系統客戶端配置

JDBC Thin(Windows/Unix 同)

  • 複製 `classesxx.zip` 至專案目錄(`$ORACLE_HOME/jdbc/lib`)
  • CLASSPATH 加入該 zip
  • 按需加入其他 Oracle zip

JDBC OCI

  • Windows:安裝 Oracle Client → 配置 CLASSPATH → PATH 加入 `$ORACLE_HOME\bin`
  • Unix:安裝 Oracle Client → 配置 CLASSPATH → LD_LIBRARY_PATH 加入 `$ORACLE_HOME/lib`

JDBC 連線語法範例

// Thin
Connection conn = DriverManager.getConnection(
    "jdbc:oracle:thin:@host:1521:SID", "user", "pwd");

// OCI
Connection conn = DriverManager.getConnection(
    "jdbc:oracle:oci8:@NetServiceName", "user", "pwd");

// KPRB
Connection conn = new oracle.jdbc.driver.OracleDriver().defaultConnection();

完整程式碼範例

// Thin 範例
import java.sql.*;
class DbAccess {
    public static void main(String[] args) throws SQLException {
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        Connection conn = DriverManager.getConnection(
            "jdbc:oracle:thin:@dbhost:1521:ORA1", "scott", "tiger");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
        while (rs.next()) System.out.println(rs.getString(1));
        stmt.close();
    }
}

OCI 與 KPRB 範例同理,僅連線字串與驅動註冊方式不同。

結語

掌握三種驅動差異與配置細節,能靈活應對從開發到生產的各種部署場景。

出處:bianceng.cn

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