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

Java JDBC 連線 Oracle 完整範例:從驅動載入到查詢操作

     編輯:Oracle 資料庫相關知識

完整類代碼

package person.fane.test;

import java.sql.*;

public class OracleTest {
    private final String oracleDriverName = "oracle.jdbc.driver.OracleDriver";
    // Thin 驅動 URL 格式:jdbc:oracle:thin:@host:port:SID
    private final String oracleUrlToConnect = "jdbc:oracle:thin:@192.168.0.36:1521:Test";
    private Connection myConnection = null;

    public OracleTest() {
        try {
            Class.forName(oracleDriverName); // 載入驅動
        } catch (ClassNotFoundException ex) {
            System.out.println(getErrorMessage(ex, "驅動載入失敗,請聯繫開發人員!").toString());
        }
    }

    private StringBuffer getErrorMessage(Exception ex, String alarmMessage) {
        StringBuffer sb = new StringBuffer();
        sb.append(alarmMessage).append(ex.getMessage());
        return sb;
    }

    public Connection getConnection() {
        try {
            // 獲取連接:URL、用戶名、密碼
            this.myConnection = DriverManager.getConnection(oracleUrlToConnect, "Fane", "201");
        } catch (Exception ex) {
            System.out.println(getErrorMessage(ex, "無法獲取連接,請聯繫開發人員!").toString());
        }
        return this.myConnection;
    }

    public static void main(String[] args) {
        OracleTest test = new OracleTest();
        try {
            Connection conn = test.getConnection();
            System.out.println("開始執行查詢...");

            PreparedStatement pstmt = conn.prepareStatement(
                "SELECT area_id, area_name, ip_address, tel, area_type, pc_id FROM c_area_info");
            ResultSet rs = pstmt.executeQuery();
            StringBuffer sb = new StringBuffer();

            while (rs.next()) {
                sb.append(rs.getInt("area_id")).append(" ")
                  .append(rs.getString("area_name")).append(" ")
                  .append(rs.getString("ip_address")).append(" ")
                  .append(rs.getString("tel")).append(" ")
                  .append(rs.getInt("area_type")).append(" ")
                  .append(rs.getInt("pc_id")).append(" ");
            }
            System.out.println(sb.toString());
        } catch (Exception ex) {
            System.out.println(test.getErrorMessage(ex, "應用程序錯誤,請聯繫開發人員!").toString());
        }
    }
}

關鍵點解析

  1. 驅動類名:Oracle 9i/10g/11g 均為 oracle.jdbc.driver.OracleDriver(舊版 oracle.jdbc.OracleDriver 已棄用)。
  2. Thin 驅動 URL:jdbc:oracle:thin:@IP:PORT:SID,無需客戶端安裝,純 Java 實現。
  3. PreparedStatement:預編譯 SQL,防止注入,支援參數綁定(setInt、setString、setDate 等)。
  4. 資源管理:生產環境必須在 finally 中關閉 ResultSet、Statement、Connection,或使用 Try-with-resources (JDK 7+)。
  5. 連接池:實際項目建議整合 HikariCP、Druid 或應用服務器(WebLogic/Tomcat)數據源,避免頻繁創建銷毀連接。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved