Java IO错误:网络适配器无法建立给定的连接错误

Java IO错误:网络适配器无法建立给定的连接错误,java,oracle,csv,Java,Oracle,Csv,我想使用CSV阅读器将值上载到oracle数据库 我有这样的数据库连接 package com.test.examples; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * @author henry gunawan * */ public class DBConnection { public static Connection

我想使用CSV阅读器将值上载到oracle数据库

我有这样的数据库连接

package com.test.examples;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author henry gunawan
 *
 */
public class DBConnection
{
        public static Connection getConnection() throws SQLException, ClassNotFoundException
        {
                //Class.forName("com.mysql.jdbc.Driver");
                 Class.forName("oracle.jdbc.driver.OracleDriver");

                Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@10.40.43.133:1526:opr", "user", "Password");

                return connection;
        }

        public static void main(String[] args)
    {
                try
        {
                getConnection();
        }
        catch (SQLException | ClassNotFoundException e)
        {
                e.printStackTrace();
        }
    }
}
package com.test.examples;

import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;

import com.opencsv.CSVReader;

public class ImportCsv
{
        public static void main(String[] args)
        {
                readCsv();
                readCsvUsingLoad();
        }

        private static void readCsv()
        {

                try (CSVReader reader = new CSVReader(new FileReader("billy.csv"), ';'); Connection connection = DBConnection.getConnection();)
                {
                        String insertQuery = "Insert into EDC_LOT_PAIRTO_MERCHANT (edc,num, merchant) values (?,?,?)";
                        PreparedStatement pstmt = connection.prepareStatement(insertQuery);
                        String[] rowData = null;
                        int i = 0;
                        while((rowData = reader.readNext()) != null){
                        for (String data : rowData)
                        {
                                pstmt.setString((i % 3) + 1, data);

                                if (++i % 3 == 0)
                                        pstmt.addBatch();// add batch

                                if (i % 30 == 0)// insert when the batch size is 10
                                        pstmt.executeBatch();
                        }}
                        System.out.println("Data Successfully Uploaded");
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }

        }

        private static void readCsvUsingLoad()
        {
                try (Connection connection = DBConnection.getConnection())
                {

                        String loadQuery = "LOAD DATA LOCAL INFILE '" + "C:\\billy.csv" + "' INTO TABLE EDC_LOT_PAIRTO_MERCHANT  FIELDS TERMINATED BY ';'"
                                        + " LINES TERMINATED BY '\n' (edc, num, merchant) ";
                        System.out.println(loadQuery);
                        Statement stmt = connection.createStatement();
                        stmt.execute(loadQuery);
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }

}
我有这样的主课

package com.test.examples;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author henry gunawan
 *
 */
public class DBConnection
{
        public static Connection getConnection() throws SQLException, ClassNotFoundException
        {
                //Class.forName("com.mysql.jdbc.Driver");
                 Class.forName("oracle.jdbc.driver.OracleDriver");

                Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@10.40.43.133:1526:opr", "user", "Password");

                return connection;
        }

        public static void main(String[] args)
    {
                try
        {
                getConnection();
        }
        catch (SQLException | ClassNotFoundException e)
        {
                e.printStackTrace();
        }
    }
}
package com.test.examples;

import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;

import com.opencsv.CSVReader;

public class ImportCsv
{
        public static void main(String[] args)
        {
                readCsv();
                readCsvUsingLoad();
        }

        private static void readCsv()
        {

                try (CSVReader reader = new CSVReader(new FileReader("billy.csv"), ';'); Connection connection = DBConnection.getConnection();)
                {
                        String insertQuery = "Insert into EDC_LOT_PAIRTO_MERCHANT (edc,num, merchant) values (?,?,?)";
                        PreparedStatement pstmt = connection.prepareStatement(insertQuery);
                        String[] rowData = null;
                        int i = 0;
                        while((rowData = reader.readNext()) != null){
                        for (String data : rowData)
                        {
                                pstmt.setString((i % 3) + 1, data);

                                if (++i % 3 == 0)
                                        pstmt.addBatch();// add batch

                                if (i % 30 == 0)// insert when the batch size is 10
                                        pstmt.executeBatch();
                        }}
                        System.out.println("Data Successfully Uploaded");
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }

        }

        private static void readCsvUsingLoad()
        {
                try (Connection connection = DBConnection.getConnection())
                {

                        String loadQuery = "LOAD DATA LOCAL INFILE '" + "C:\\billy.csv" + "' INTO TABLE EDC_LOT_PAIRTO_MERCHANT  FIELDS TERMINATED BY ';'"
                                        + " LINES TERMINATED BY '\n' (edc, num, merchant) ";
                        System.out.println(loadQuery);
                        Statement stmt = connection.createStatement();
                        stmt.execute(loadQuery);
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }

}
我得到了一些类似这样的错误,看起来我的连接是正确的,但是返回值给出了错误

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.javacodegeeks.examples.DBConnection.getConnection(DBConnection.java:18)
    at com.javacodegeeks.examples.ImportCsv.readCsv(ImportCsv.java:21)
    at com.javacodegeeks.examples.ImportCsv.main(ImportCsv.java:14)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:439)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:454)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:693)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
    ... 9 more
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:149)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:405)
    ... 14 more
java.sql.SQLRecoverableException:IO错误:网络适配器无法建立连接
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
位于oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:553)
位于oracle.jdbc.driver.T4CConnection(T4CConnection.java:254)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:247)
在com.javacodegeks.examples.DBConnection.getConnection(DBConnection.java:18)上
在com.javacodegeks.examples.importsv.readCsv(importsv.java:21)上
位于com.javacodegeks.examples.importsv.main(importsv.java:14)
原因:oracle.net.ns.NetException:网络适配器无法建立连接
在oracle.net.nt.connstategy.execute(connstategy.java:439)
位于oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:454)
位于oracle.net.ns.NSProtocol.buildConnection(NSProtocol.java:693)
位于oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)
位于oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
... 9更多
原因:java.net.ConnectException:连接超时:连接
位于java.net.DualStackPlainSocketImpl.waitForConnect(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:149)
位于oracle.net.nt.connpoption.connect(connpoption.java:133)
在oracle.net.nt.connstategy.execute(connstategy.java:405)
... 14多

在我与mysql的连接中,这段代码运行正常,但是当我尝试连接到oracle时,我遇到了这个错误。

好吧,你能ping一下机器吗?在
10.40.43.133:1526上没有数据库服务器在监听,或者它的防火墙阻止你向该主机/端口发送数据包。关于“连接超时:连接”有什么不清楚的?它无法连接到您的服务器。如果您确定您的连接
String
正确,则您的数据库已关闭。请检查连接设置、oracle server防火墙、您的应用程序是否可以看到oracle服务器等。