MyEclipse 內建 JDBC 驅動管理與資料庫瀏覽器,設定連線 Oracle 10g 需正確加入驅動 JAR、配置連線 URL、SID 與認證資訊。本文提供逐步圖文操作流程。
TestJDBC → Finish。$ORACLE_HOME/jdbc/lib/ojdbc14.jar (JDK 1.4/1.5)ojdbc5.jar (JDK 1.5)、ojdbc6.jar (JDK 1.6+)。ojdbc14.jar → OK。commons-dbcp.jar、c3p0.jar 等。oracle.test、類別名 OracleTest → Finish。package oracle.test;
import java.sql.*;
public class OracleTest {
// 連線參數
private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String USER = "system";
private static final String PASSWORD = "shiyue123";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 載入驅動
Class.forName(DRIVER);
// 2. 建立連線
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("資料庫連線成功!");
// 3. 執行查詢
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM boy");
while (rs.next()) {
System.out.println("ID: " + rs.getString(1) + ", Name: " + rs.getString(2));
}
} catch (ClassNotFoundException e) {
System.err.println("找不到驅動類別:" + e.getMessage());
e.printStackTrace();
} catch (SQLException e) {
System.err.println("SQL 執行錯誤:" + e.getMessage());
e.printStackTrace();
} finally {
// 4. 關閉資源 (依序:RS -> Stmt -> Conn)
closeQuietly(rs);
closeQuietly(stmt);
closeQuietly(conn);
}
}
private static void closeQuietly(AutoCloseable ac) {
if (ac != null) {
try { ac.close(); } catch (Exception ignored) {}
}
}
}
| 參數 | 說明 | 範例 |
|---|---|---|
| JDBC URL | Thin 驅動格式:jdbc:oracle:thin:@host:port:sid | jdbc:oracle:thin:@localhost:1521:orcl |
| Port | Listener 預設 1521,可在 $ORACLE_HOME/network/admin/listener.ora 確認 | 1521 |
| SID | 資料庫執行個體名稱,查詢:SELECT instance_name FROM v$instance; | orcl |
| Driver Class | Oracle 官方 Thin 驅動 | oracle.jdbc.driver.OracleDriver (10g)oracle.jdbc.OracleDriver (11g+) |
資料庫連線成功! 及查詢結果即代表設定正確。| 錯誤訊息 | 原因 | 解決 |
|---|---|---|
ClassNotFoundException: oracle.jdbc.driver.OracleDriver | JAR 未加入 Build Path | 重新檢查步驟 1,確認 JAR 在 Libraries 標籤中 |
ORA-12505: TNS:listener does not currently know of SID | SID 錯誤或 Listener 未註冊該執行個體 | 確認 lsnrctl status 顯示的 Service Name,SID 大小寫需一致 |
ORA-12541: TNS:no listener | Listener 未啟動 | 執行 lsnrctl start |
ORA-01017: invalid username/password | 帳號密碼錯誤 | 確認 system/密碼,或解鎖帳號 ALTER USER system ACCOUNT UNLOCK; |
UnsatisfiedLinkError: no ocijdbc in java.library.path | 誤用 OCI (Thick) 驅動但未安裝 Client | 確認 URL 使用 thin,且專案只引用 ojdbc*.jar |
Oracle Thin Driver,JAR List 加入 ojdbc14.jar。注意:MyEclipse 6.0 為舊版本 (2007 年),現代開發建議升級至 Eclipse 2024+ / IntelliJ IDEA,搭配 Maven/Gradle 管理 ojdbc 依賴 (如 com.oracle.database.jdbc:ojdbc11:23.4.0.0),並使用 Spring Boot / MyBatis 等框架簡化資料存取。