0

我无法连接到我的Oracle database server. 这是代码:

import java.util.*;
import java.sql.*;
import java.io.IOException;

public class Knigi {
public static void main(String[] args) {


  String baza_DRIVER="oracle.jdbc.driver.OracleDriver";
  String baza_STRING="jdbc:oracle:thin:@localhost:1521:";
  String baza_USERNAME="knigi";
  String baza_PASSWORD="knigi";

  Locale.setDefault(Locale.ENGLISH); // Vazhno e bidejkji Oracle treba da znae kakvi poraki da pojavuva

  try {
      Driver Driver = (Driver)Class.forName(baza_DRIVER).newInstance(); 
      Connection Conn = DriverManager.getConnection(baza_STRING,baza_USERNAME,baza_PASSWORD);

      PreparedStatement Statement = Conn.prepareStatement("SELECT * FROM zhanrovi");
      ResultSet zhanrovi = Statement.executeQuery();
      boolean isEmpty = !zhanrovi.next();
      boolean hasData = !isEmpty;
      while (hasData) {
        System.out.println("Zhanr: "+zhanrovi.getString("ZH_IME"));

        PreparedStatement Statement2 = 
           Conn.prepareStatement("select * from knigi where ZH_BR = ?");
        Statement2.setInt(1,zhanrovi.getInt("ZH_BR"));
        ResultSet knigi = Statement2.executeQuery();
        boolean isEmpty2 = !knigi.next();
        boolean hasData2 = !isEmpty2;
        if (isEmpty2) {
          System.out.println("      - nema knigi");
        } else {
          System.out.println("      - Knigi:");
        };
        while (hasData2) {
          System.out.println(
            "                 " +
            knigi.getString("ISBN") +
            " - " +
            knigi.getString("NASLOV")+" ");
          hasData2=knigi.next();
        }
        knigi.close();
        hasData=zhanrovi.next();
      }
      zhanrovi.close();
      Conn.close();
    } catch (Exception e) {
      System.out.println(e);
    }
}

}

我收到了这条消息:

java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)(ERR=12504)(ERROR_STACK=(ERROR=(CODE=12504)(EMFI=4))(ERROR=(CODE=12504)(EMFI=4))))

在学校,这个例子很有效。问题出在哪里??

4

4 回答 4

0

问题已关闭......我不得不做一个隧道,因为我的教师服务器已经关闭了来自教师网络外部的连接,他们还告诉我密码已被更改......顺便说一句,他们帮助我的答案连接到我的本地服务器并访问我的本地数据库..

再次感谢小伙伴们^_^

于 2013-05-20T12:14:03.073 回答
0

您的数据库服务器是否在本地计算机上运行:localhost:1521?

您的学校机器上可能运行着数据库服务器,但您的家用机器根本没有。

db 连接 URL "jdbc:oracle:thin:@localhost:1521:" 通常不是硬编码的。当您在另一台机器上运行代码时,将其指向 localhost 几乎总是会失败。

于 2013-05-19T08:26:23.437 回答
0

试试这个,可能有帮助

  jdbc:oracle:thin://<host>:<port>/<SERVICE_NAME>

service_name=数据库的SID,通常是ORCL。

干杯,

于 2013-05-19T08:34:50.860 回答
0

当您收到此类拒绝连接错误时,主要有三种情况

  1. 没有在您指定的主机上运行数据库服务器:端口,即在 localhost:1521
  2. 您输入的密码错误。
  3. 您指定的端口被防火墙阻止,或者您位于某些不允许您连接到该端口的代理后面。

您可以手动尝试从命令行连接到您的数据库,并查看连接是否处于活动状态。

于 2013-05-19T08:35:38.020 回答