【问题标题】:Connection Issues with Java program using oracle 11g使用 oracle 11g 的 Java 程序的连接问题
【发布时间】:2014-12-02 06:52:27
【问题描述】:

我的 java 程序使用 ojdbc7.jar 与 oracle 11g 交互时遇到连接问题。我在 Windows 7 平台上使用 jdk 1.8。我遇到了连接错误。

我正在下面写我的整个程序:

package mydao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class AdminDAO {
    Connection con;
    public void connectionMethod() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oracleEE", "system", "tiger");
        } catch (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }
    }
    public void loginCheck(String uid, String pwd) {
        connectionMethod();
        try {
            String sql = "SELECT * FROM ADMIN_LOGIN WHERE ADMINUID=? AND ADMINPWD=?";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, uid);
            ps.setString(2, pwd);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                rs.getString(1);
                rs.getString(2);
                rs.getString(3);
            }
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        } finally {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        AdminDAO a = new AdminDAO();
        a.loginCheck("avi", "avi3");
    }
}         

但我收到这样的错误:

    run:
    java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at mydao.AdminDAO.connectionMethod(AdminDAO.java:33)
    at mydao.AdminDAO.loginCheck(AdminDAO.java:43)
    at mydao.AdminDAO.main(AdminDAO.java:74)

    Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:229)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
    ... 9 more

    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    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:162)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:411)
    ... 14 more

    Exception in thread "main" java.lang.NullPointerException
    at mydao.AdminDAO.loginCheck(AdminDAO.java:61)
    at mydao.AdminDAO.main(AdminDAO.java:74)
    Java Result: 1

谁能帮我解决这个问题?我很困惑如何从这个错误中恢复。

【问题讨论】:

  • 您的 oracle 侦听器是否已启动并正在运行,您的数据库是否已安装?
  • 我正在使用相同的代码来使用 mysql 服务器执行并且它工作正常。我在 sql plus cmd 提示符下访问相同的结果,但不是通过 java 程序。
  • lsnrctl status 命令的输出是什么?
  • 谁能帮我摆脱这个错误?
  • 对不起,我没有得到你。 @rafalopez79

标签: java jdbc oracle11g


【解决方案1】:

请尝试在 services.msc 中启动 TNS-Listener 服务。

【讨论】:

    【解决方案2】:

    服务器似乎没有在指定的端口或主机名上侦听。

    检查您的服务是否正在运行,如果是,请检查它正在侦听的端口。如果您的 oracle 服务正在侦听不同的端口,请在您的代码中更新相同的内容并检查。

    【讨论】:

      猜你喜欢
      • 2012-11-20
      • 2015-12-09
      • 1970-01-01
      • 2018-03-07
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      相关资源
      最近更新 更多