2012-02-07 81 views
-1

我發佈了很多研究和谷歌的東西后我的問題。無法將我的Java應用程序連接到我的oracle 11g

我有一個的Oracle 11g 11.1.0.6.0是安裝在我的筆記本電腦 所有我試圖做的是我的Java應用程序連接到數據庫

我正在歌廳此異常: 的java.sql .SQLRecoverableException:IO錯誤:網絡適配器無法建立連接。

,我使用連接代碼:

Connection con=null ; 
try{ 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
System.out.println("The driver has been loaded"); 
con=DriverManager.getConnection("jdbc:oracle:thin:@AMRO-PC:1521:XE", "aa" , "aa"); 
System.out.println("Connection was established"); 
} 
catch (Exception e) 
{ 
System.out.println(e.toString()); 
}//catch 

我的tnsnames.ora是這樣

XE = 
(DESCRIPTION = 
(ADDRESS = (PROTOCOL = TCP)(HOST = Amro-PC)(PORT = 1521)) 
(CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = XE) 
) 
) 

完整堆棧跟蹤:

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish  the connection 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458) 
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546) 
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236) 
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at Main.main(Main.java:31) 
    Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection 
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:392) 
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:434) 
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:687) 
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:247) 
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102) 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320) 
... 7 more 
    Caused by: java.net.UnknownHostException: //localhost 
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source) 
at java.net.InetAddress.getAddressesFromNameService(Unknown Source) 
at java.net.InetAddress.getAllByName0(Unknown Source) 
at java.net.InetAddress.getAllByName(Unknown Source) 
at java.net.InetAddress.getAllByName(Unknown Source) 
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:117) 
at oracle.net.nt.ConnOption.connect(ConnOption.java:133) 
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:370) 
... 12 more 

的listener.ora中

SID_LIST_LISTENER = 
(SID_LIST = 
(SID_DESC = 
    (SID_NAME = PLSExtProc) 
    (ORACLE_HOME = D:\oracle\app\oracle\product\11.2.0\server) 
    (PROGRAM = extproc) 
) 
(SID_DESC = 
    (SID_NAME = CLRExtProc) 
    (ORACLE_HOME = D:\oracle\app\oracle\product\11.2.0\server) 
    (PROGRAM = extproc) 
) 
) 

LISTENER = 
(DESCRIPTION_LIST = 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    (ADDRESS = (PROTOCOL = TCP)(HOST = Amro-PC)(PORT = 1521)) 
) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

那麼請有人可以幫助我嗎?! 在此先感謝

+0

不推薦使用'oracle.jdbc.driver.OracleDriver';你應該使用'oracle.jdbc.OracleDriver'。 – Paul 2012-02-07 20:17:02

+0

相同的東西 和所有在互聯網上的教程都使用oracle.jdbc.driver.OracleDriver – 2012-02-07 20:28:25

+0

粘貼您的listener.ora和/或lsnrctl服務輸出。你使用service_name但是你想使用SID – iddqd 2012-02-07 20:51:58

回答

3

你有一個服務名稱(XE),所以語法必須

jdbc:oracle:thin:@//AMRO-PC:1521/XE 

在你的tnsnames.ora沒有得到服務名稱和SID之間的混淆。此外,請檢查您是否可以解決AMRO-PC問題,或者如果您不能解決問題,請將聽衆和代碼設置爲使用「localhost」或IP。

+0

這很令人興奮的是我正在使用,但沒有// 但我確實嘗試,以後同樣你正在寫與兩個斜線但相同的錯誤 – 2012-02-07 20:13:01

+0

檢查兩個建議。如果你無法建立conn,可能你無法解決。因此,請檢查數據庫的listener.ora,並在您的代碼中使用localhost或您的IP。 – Alfabravo 2012-02-07 20:15:31

1

您試圖通過jdbc連接並且數據庫位於本地主機上。嘗試使用jdbc:oracle:thin:@localhost:1521:XE代替。另外的tnsnames.ora是什麼,你使用JDBC

+0

我已經嘗試了localhost,同樣的錯誤。 – 2012-02-07 20:14:57

+0

可以顯示完整的堆棧跟蹤嗎? – maks 2012-02-07 20:18:17

+0

另外,如果你有oracle SQL Developer,試着通過它連接到數據庫,因爲它使用相同的技術 – maks 2012-02-07 20:20:06

1

嘗試添加到您的listener.ora另一個SID_DESC這樣做這裏:

(SID_DESC = 
      (GLOBAL_NAME = XE) 
      (SID_NAME = XE) 
      (ORACLE_HOME = D:\oracle\app\oracle\product\11.2.0\server) 
     ) 

現在,這個網址試試吧:

jdbc:oracle:thin:@localhost:1521:XE 
+0

我無法編輯listener.ora – 2012-02-08 00:16:45

相關問題