2012-02-07 6 views
-1

Я отправляю свой вопрос после многих исследований и многого.Cant Подключить мое приложение к Java к моему оракулу 11g

у меня есть Oracle 11g 11.1.0.6.0, установленные на моем ноутбуке все, что я пытаюсь сделать, это подключить Java приложение к базе данных

я адресность этого исключения: java.sql .SQLRecoverableException: ошибка ввода-вывода: сетевой адаптер не смог установить соединение.

код, который я использую для подключения:

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) 
) 
) 

полный StackTrace:

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

+0

то же самое , и все учебные пособия по всему Интернету используют oracle.jdbc.driver.OracleDriver –

+0

Вставьте свой список услуг listenener.ora и/или lsnrctl. Вы используете служебное имя, но вы хотите использовать SID – iddqd

ответ

3

У вас есть имя службы (ХЕ), поэтому синтаксис должен быть

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

не запутаться между именем службы и SID в вашем tnsnames.ora. Кроме того, проверьте, можете ли вы разрешить AMRO-PC или, если вы не можете, установите вместо этого ваш слушатель и код вместо «localhost» или вашего IP-адреса.

+0

хорошо, что я использую, но я не использую // , но я попробовал это позже то же самое, что вы пишете с двумя косые черты, но та же самая ошибка –

+0

Проверьте оба предложения. Если вы не можете установить соединение, возможно, вы не сможете его решить. Итак, проверьте listener.ora для базы данных И ваш код будет использовать localhost или ваш IP на обоих ... – Alfabravo

1

Вы пытаетесь подключиться через jdbc и базу данных на локальном хосте. Вместо этого попробуйте использовать jdbc:oracle:thin:@localhost:1521:XE. Также tnsnames.ora нечего здесь делать, как вы используете JDBC

+0

Я уже пробовал localhost, та же ошибка. –

+0

Вы можете показать полную стек? – maks

+0

Кроме того, если у вас есть Oracle Oracle Developer, попробуйте подключиться к базе данных через него, поскольку он использует ту же технику – maks

1

попробовать добавить к вашим listener.ora другой SID_DESC так:

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

Теперь попробуйте с этим URL:

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

i can not edit the listener.ora –

Смежные вопросы