2012-06-06 96 views
-1

在java.sql包中我們有Connection接口來建立與數據庫的連接。JDBC連接接口對象

在DirverManager類的幫助下,我們可以獲得Connection接口的對象。例如,

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

Connection con=DriverManager.getConnection("jdbc:odbc:DNS"); 

但我有一些困惑--- 如果連接是一個接口,那麼我們怎樣才能連接接口的對象?

請清除此混淆。

回答

2

我們不能爲任何接口創建任何對象。但是可以將正在實現該接口的類對象分配給該接口的引用變量。這裏CON是參考變量到該接口,和的DriverManager.getConnection()返回它實現了連接接口的類對象。

+0

但是我想知道DirverManager.getConnection()返回哪個類對象(意味着哪個類實現了Connection接口)。 – ajava

+1

現在哪個類實現_Connection_是驅動程序特定的。您使用的JDBC驅動程序具有與之關聯的.jar文件,並且其中定義的類實現這些接口。每個這些語句都會返回一個對象。您看不到什麼是使用_new object()_初始化正常的類對象方式。 –

1

Oracle的T4CConnection類實現Connection接口,而Mysql的JDBC4Connection類也實現Connection接口。

這意味着低於該行的con參考變量保存無論是T4CConnection類的obj如果你,如果你的mysql加載驅動程序加載Oracle驅動程序或JDBC4Connection類OBJ。

Connection con=DriverManager.getConnection("jdbc:odbc:DNS");

0

在J2EE中,我們使用接口而不是類代碼從供應商的供應商和驅動程序來驅動程序的類名稱的改變。要獲得實現類名稱,請使用getClass()。