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

Java JDBC 連線 Oracle 資料庫完整範例類別

     編輯:Java 相關知識

本文提供一個完整的 Java 類別範例,示範如何使用 JDBC 連線 Oracle 資料庫、執行查詢並正確管理資源。採用屬性檔案管理連線參數,採用 PreparedStatement 防止 SQL 注入,並展示標準的資源釋放模式。

完整程式碼

import java.io.*;
import java.sql.*;
import java.util.Properties;

public class OracleJdbcTest {
    private static final String DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
    private Connection conn;

    public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, IOException {
        Properties props = new Properties();
        props.load(fs);
        String url = props.getProperty("db.url");
        String user = props.getProperty("db.user");
        String password = props.getProperty("db.password");

        Class.forName(DRIVER_CLASS);
        conn = DriverManager.getConnection(url, user, password);
    }

    public void fetch() throws SQLException {
        String sql = "SELECT SYSDATE FROM dual";
        try (PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery()) {
            while (rs.next()) {
                // 處理查詢結果,例如:System.out.println(rs.getDate(1));
            }
        } // try-with-resources 自動關閉 ps 和 rs
    }

    public static void main(String[] args) {
        OracleJdbcTest test = new OracleJdbcTest();
        try (FileInputStream fs = new FileInputStream("db.properties")) {
            test.init(fs);
            test.fetch();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

關鍵設計要點

  • 外部化設定:資料庫 URL、帳號、密碼放在 db.properties,避免硬編碼,利於部署與維護。
  • PreparedStatement:即使是無參數查詢,也建議使用,養成習慣可防 SQL 注入並利於執行計畫重用。
  • try-with-resources (Java 7+):自動關閉 ResultSet、Statement、Connection,避免資源洩漏。
  • 驅動類別名稱:Oracle 12c 以上建議使用 oracle.jdbc.OracleDriver(舊版 oracle.jdbc.driver.OracleDriver 已棄用但仍相容)。

db.properties 範例

db.url=jdbc:oracle:thin:@localhost:1521:ORCL
db.user=scott
db.password=tiger

常見問題與注意事項

  • ClassNotFoundException:確認 ojdbc*.jar 已加入 classpath。
  • 連線失敗:檢查 IP、Port、SID/Service Name、防火牆、監聽器狀態。
  • 長時間運行應用:建議使用連線池(HikariCP、Druid、Tomcat JDBC Pool)而非手動管理單一連線。

此範例適合作為 Java 連線 Oracle 的基礎模板,實際專案中建議整合連線池與 DAO 模式進一步封裝。

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