Я пытаюсь подключиться к базе данных Oracle 12c, используя java в затмении. Это исключение, которое продолжает попадаться.Не удается подключиться к базе данных оракула
Exception in thread "main" java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at DBHelper.makeConnection(DBHelper.java:31)
at Main.main(Main.java:37)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:470)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595)
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:246)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:264)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 7 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:161)
at oracle.net.nt.ConnOption.connect(ConnOption.java:159)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428)
... 13 more
Ниже то, что я сделал
main.java
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] arg) throws SQLException{
DBHelper dbconn = new DBHelper("system", "reborn78");
Connection conn = dbconn.makeConnection();
ResultSet result = dbconn.runQuery(conn, "SELECT A,B FROM NEWS");
System.out.println(result);
}
}
DBHelper.java
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBHelper {
private String userName;
private String passWord;
private final String url = "jdbc:oracle:thin:@localhost:1521/ORCL";
public DBHelper(String userName, String passWord) throws SQLException{
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(myDriver);
this.userName = userName;
this.passWord = passWord;
}
public Connection makeConnection() throws SQLException{
Properties props = new Properties();
props.setProperty("user", this.userName);
props.setProperty("password", this.passWord);
return DriverManager.getConnection(this.url,props);
}
public ResultSet runQuery(Connection conn, String sqlQuery) throws SQLException{
PreparedStatement preStatement;
ResultSet result;
Statement statement = conn.createStatement();
preStatement = conn.prepareStatement(sqlQuery);
statement.execute(sqlQuery);
result = preStatement.executeQuery();
return result;
}
}
ниже мой listener.ora файл
# listener.ora Network Configuration File: E:\app\Usama\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\Usama\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\Usama\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ниже мой tnsnames.ora файл
# tnsnames.ora Network Configuration File: E:\app\Usama\product\12.1.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
SQL подключен с помощью SQLPlus и слушателя запущен и подключен к SQL Developer, как хорошо! Ниже ссылка на изображения https://www.dropbox.com/sh/vbv0gkfcz2g59t5/AACtIVR1-bIen99DNN4HDsWaa?dl=0
Я впустую три дня получает это право, я был в состоянии получить его вчера, но сегодня работает, когда я перезагрузки моей системы, такая же ошибка возвращается. Я попробовал все, но ничего не работает сегодня. Заранее благодарен
Ваш сервер Oracle работает локально? Это работает вообще? – GolezTrol
Да, вы проверили прикрепленные фотографии? –
https://www.dropbox.com/s/2i5xp87vam97779/sql%20developer%20running%20and%20connected.jpg?dl=0 Пожалуйста, проверьте это, я уверен, что он работает –