当前位置: 首页 > 知识库问答 >
问题:

使用Java连接到Oracle数据库

云京
2023-03-14

我无法连接到我的Oracle数据库服务器。这是代码:

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

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

共有3个答案

朱鹤轩
2023-03-14

出现这种连接被拒绝错误主要有三种情况

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

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

司易安
2023-03-14

您是否在本地机器上运行DB服务器:localhost:1521?

您的学校计算机可能运行数据库服务器,但您的家用计算机根本无法运行。

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

颜德馨
2023-03-14

试试这个,可能会有帮助

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

service _ name =数据库的SID,通常是ORCL。

干杯,

 类似资料:
  • 问题内容: 我正在尝试从Windows 7中的Node.js连接到Oracle数据库。这可能吗?我尚未找到适用于Windows的Node.js插件。有建议的解决方法吗?我猜至少还有一个人想要在Windows上使用Node.js,并且需要连接到Oracle。如果需要的话,我愿意接受简单的解决方法。谢谢您的帮助。 问题答案: 您需要直接从Node.js连接到oracle吗?您可以用另一种语言编写数据库

  • 尝试通过python的TCPS连接来连接Oracle数据库,但失败,出现ORA-28759:无法打开文件。 我不确定从本地/其他服务器连接到不同服务器上的数据库时需要在钱包中配置什么。

  • 主要内容:使用SQL * Plus连接到Oracle数据库服务器,使用SQL Developer连接到Oracle数据库服务器在本教程中,您将学习如何使用和SQL Developer 工具连接到Oracle数据库服务器。 使用SQL * Plus连接到Oracle数据库服务器 是安装Oracle数据库服务器或客户端时自动安装的交互式查询工具。 有一个命令行界面,允许您连接到Oracle数据库服务器并交互执行语句。 注意:如果有使用过MySQL或PostgreSQL,与MySQL中的mysql程序

  • 我正在尝试使用hikaricp和java为Oracle数据库创建一个连接池。 这是我下面的代码。。 我正在降低误差。 任何建议也将是有益的..谢谢..

  • 我无法使用R Studio连接到Oracle数据库。 下面是我为设置连接而执行的代码。 以上代码已成功执行。 我在下面的代码中得到一个错误。 错误. jcall(drv@jdrv,"Ljava/sql/Connection;","Connec",as.character(url)[1],:java.sql.SQLExctive:指定无效的Oracle URL 我的R版本是3.4.0

  • 我正在使用sqldeveloper查询数据库并将结果导出到csv文件。我每天都需要这个文件,所以考虑创建可以在windows任务调度器上调度的bat文件。我在研究它,发现我可以使用SQLcl运行脚本来导出查询数据。但不知何故,我无法连接它,它给了我一个错误“ORA-01017:无效的用户名/密码;登录被拒绝。以下是我的sql developer连接属性 这是我的命令行: 我安装了java开发工具包