2012-04-15 62 views
1

我对数据库主题非常陌生,试图通过与Netbeans连接来完成一些初学者工作。但是当我测试我的连接我面临着一些错误(我搜索了这个错误,但无法理解任何东西)。我为Oracle Thin安装了Oracle 10g Express Database Edition并下载了ojdbc6.jar。这个简单的代码只是为了测试驱动程序版本;ORA-12505,TNS:侦听器目前不知道连接描述符中给出的SID

import java.sql.*; 
import oracle.jdbc.pool.OracleDataSource; 

    class JDBCVersion 
    { 
     public static void main (String args[]) throws SQLException 
     { 
     OracleDataSource ods = new OracleDataSource(); 
     ods.setURL("jdbc:oracle:thin:@localhost:1521:XE [hr on HR]"); 
     Connection conn = ods.getConnection(); 

     // Create Oracle DatabaseMetaData object 
     DatabaseMetaData meta = conn.getMetaData(); 

     // gets driver info: 
     System.out.println("JDBC driver version is " + meta.getDriverVersion()); 
     } 
    } 

,我也得到

Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error: 
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 

,我说我是新手这个数据库的东西,我会很高兴,如果你能解释帮助。无论如何感谢

回答

4

这里是如何连接到Oracle数据库的代码:

public class JDBCVersion { 

    public static void main(String[] args) { 
    try { 
     Class.forName("oracle.jdbc.OracleDriver"); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
     return; 
    } 
    Connection connection = null; 
    try { 
     connection = DriverManager.getConnection(
       "jdbc:oracle:thin:@localhost:1521:XE", "username", 
       "password"); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
     return; 

    } 
} 

凡的用户名和密码,必须相应地改变。另外如果你已经安装了Oracle 10g,那么正确的版本将是ojdbc14.jar。

+0

哇,它的工作!非常感谢。顺便问一下ojdbc14库与ojdbc6 _有什么重要区别? – quartaela 2012-04-15 23:24:52

+0

实际上ojdbc6.jar的作品,但它实际上是Oracle 11g的驱动程序。所以更好的使用正确的版本,因为你使用的是Oracle 10g – Ravi 2012-04-15 23:29:18

+0

好的,我会安装ojdbc14。并再次感谢您的帮助 – quartaela 2012-04-15 23:30:09

相关问题