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

用jdbc连接oracle数据库

相云
2023-03-14

我正在尝试一个程序来检查与oracle数据库的连接,如下所示

import java.sql.*;  
class OracleCon{  
public static void main(String args[]){  
    try{  
        //step1 load the driver class  
        Class.forName("oracle.jdbc.driver.OracleDriver");  

        //step2 create  the connection object  
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","SangamOne123");  

        //step3 create the statement object  
        Statement stmt=con.createStatement();  

        //step4 execute query  
        ResultSet rs=stmt.executeQuery("select * from emp");  
        while(rs.next())  {
            System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
        }

         //step5 close the connection object  
         con.close();  

        } catch(Exception e){
            System.out.println(e);
        }
    }  
}  

但在eclipse中运行之后,它显示了以下异常。

JAVAsql。SQLException:Listener拒绝了连接,出现以下错误:ORA-12505,TNS:Listener当前不知道连接描述符中给出的SID

请帮助我,我是oracle数据库的新手。

共有1个答案

公良俊楚
2023-03-14

问题是关于oracle的SID(系统标识符),SID是在您安装oracle或创建数据库时创建的。

确保您的SIDxe,并且为要使用的侦听器进行了配置。

还可以在oracle安装中查看您的listener.ora文件。它应该看起来有点像以下内容:

 SID_LIST_LISTENER =
    (SID_LIST =
        (SID_DESC =
          (SID_NAME = default)
          (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )

       (SID_DESC =
         (GLOBAL_DBNAME = ORCL)
         (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
         (SID_NAME = orcl)
        )

       (SID_DESC =
         (GLOBAL_DBNAME = BMBK)
         (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
         (SID_NAME = BMBK)
        )

     )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 123.456.789.101)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )

注意第三行,其中SID_NAME=default,对于您的侦听器,SID应该是xe,或者使用此处指定的任何内容。

您的系统中可能还有多个SID。

 类似资料:
  • 我正在尝试学习如何使用Oracle Container数据库,并只做基本的JDBC连接。我安装了一个文档化版本的Oracle: https://hub.docker.com/_/oracle-database-enterprise-edition 根据数据表,该数据库由CDB数据库ORCLCDB和PDB数据库ORCLPDB1组成。 所以我想我可以这样连接它: jdbc:oracle:thin:@l

  • 本文向大家介绍jdbc连接oracle数据库功能示例,包括了jdbc连接oracle数据库功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jdbc链接oracle数据库功能。分享给大家供大家参考,具体如下: 希望本文所述对大家java程序设计有所帮助。

  • 我们正在使用tomcat jdbc连接池与Oracle数据库。最近,我们遇到了JDBC瘦客户机的Oracle数据库中存在太多非活动会话的问题。 有人能帮我们吗?它为什么会导致数据库中的非活动会话,以及对此的解决方案是什么。

  • 这是我得到的错误: 我用*替换了一些细节,因为这是学校的数据库。

  • 主要内容:1. 导入JDBC包,2. 注册JDBC驱动程序,数据库URL配置,创建连接对象,使用具有用户名和密码的数据库URL,关闭JDBC连接安装相应的驱动程序后,现在是时候来学习使用JDBC建立数据库连接了。 建立JDBC连接所涉及的编程相当简单。 以下是基本的四个步骤 - 导入JDBC包:使用Java语言的语句在Java代码开头位置导入所需的类。 注册JDBC驱动程序:使JVM将所需的驱动程序实现加载到内存中,从而可以满足JDBC请求。 数据库URL配置:创建一个正确格式化的地址,指向要连