2009-12-06 57 views
2

任何人都可以解釋我這些類和方法嗎?幫我連接java和oracle

DriverManager.registerDriver 
(new oracle.jdbc.driver.OracleDriver()); 
conn = java.sql.DriverManager.getConnection(
"jdb:ocracle:thin:username/[email protected]:1234:dbSID"); 

感謝

+0

您的JDBC URL中有幾個輸入錯誤。應該像「jdbc:oracle:」開始: – 2009-12-06 09:55:51

回答

0

DriverManager類的Java處理數據庫和JDBC驅動程序,路由數據庫之間的連接I/O,以正確的JDBC驅動程序(你可以有多種類型的多個驅動器開啓的,即連接的數據庫)。

驅動程序向DriverManager註冊,以便它們成爲其工作集的一部分。下一步是創建與數據庫的連接,以便可以運行查詢。這是通過

Connection conn = DriverManager.getConnection("jdb:ocracle:thin:username/[email protected]:1234:dbSID") 

方法。傳遞給getConnection()方法的連接字符串是特定於驅動程序的,您需要爲每個驅動程序提供RTFM。需要注意的是DriverManager從它的註冊驅動程序的列表自動選擇驅動程序,根據您在通過連接字符串的語法。

返回的Connection對象是你準備語句和運行查詢對數據庫手柄

+0

根據javadoc:應用程序不再需要使用Class.forName()來顯式加載JDBC驅動程序。當前使用Class.forName()加載JDBC驅動程序的程序將繼續工作而不進行修改。 – Bozho 2009-12-06 11:27:46

+0

請原諒因爲兼容性約束 – 2009-12-06 11:34:06

+0

而被困在1.4.2中的可憐的混蛋,「不推薦的方式」是一個錯誤的陳述。 – Bozho 2009-12-06 11:51:31

4

對此事進行了很好的教程,讓我們來解碼你的代碼塊的行:

1. DriverManager.registerDriver 
2. (new oracle.jdbc.driver.OracleDriver()); 
3. conn = java.sql.DriverManager.getConnection(
4. "jdbc:oracle:thin:username/[email protected]:1234:dbSID"); 

線路2:

創建的oracle.jdbc.driver.OracleDriver一個新實例,一個JDBC Driver用於Oracle數據庫。 JDBC驅動程序實現由JDBC API定義的接口和類,程序員用它來連接數據庫並執行查詢。

行1

寄存器的oracle.jdbc.driver.OracleDriver的實例的DriverManager類,這是JDBC的傳統管理層,所述用戶和所述驅動器之間的工作。它處理在數據庫和適當的驅動程序之間建立連接。

3號線:

現在,JDBC應用程序和數據庫之間的通信層是準備好了,你可以創建通過調用DriverManagergetConnection()方法的連接。

第4行:

這是「連接字符串」或「數據庫URL」。這String標識您要連接到的數據庫。該URL的方案特定於數據庫提供者和/或驅動程序(這裏是Oracle及其「瘦」驅動程序)。


注意,之前Java 6中,調用Class.forName是加載和註冊JDBC驅動程序的首選方式。這是Driver致電DriverManager.registerDriver的責任。

[...]所有Driver類應與創建該類的一個實例,然後它被加載時與DriverManager類註冊它的靜態部分(靜態初始化)被寫入。因此,用戶通常不會直接撥打DriverManager.registerDriver;它在加載時應該由Driver類自動調用。

查看JDBC文檔中的Driver Manager章節以獲取更多詳細信息。

+0

感謝名單4烏拉圭回合答案 我真的認識到 好運 RAQ報告 www.raqsoft.com – wayne 2009-12-07 05:13:48

+0

您應該知道oracle.jdbc.driver軟件包已被Oracle拒絕供客戶使用。從現在起,應該使用oracle.jdbc包。 – 2009-12-07 19:25:54