0

我想连接Oracle 10g Express Edition和Java,我遵循的步骤是:

使用以下文件配置我的类路径:

C:\oracle\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar

C:\Program Files\Java\jdk1.7.0_01\bin

C:\oracleexe\app\oracle\product\10.2.0\server\BIN

然后我尝试了以下程序将其与 OCI 驱动程序连接:

import  java.sql.*;

public class OracleOCIConnection
{
   public static void main(String args[])
   {
      try
      {
      // load oracle driver
         Class.forName("oracle.jdbc.driver.OracleDriver");
      // connect using Native-API (OCI) driver
         Connection con = DriverManager.getConnection("jdbc:oracle:oci8:@","hr","hr" );
         System.out.println("Connected Successfully To Oracle using OCI driver");
         con.close();
      }
         catch(Exception ex)
         {
            ex.printStackTrace();
         }
   }
}

还有这个使用瘦驱动程序:

import  java.sql.*;

public class OracleThinConnection
{
   public static void main(String args[])
   {
      try
      {
      // load oracle driver
         Class.forName("oracle.jdbc.driver.OracleDriver");
      // connect using Thin driver
         Connection con =  DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
         System.out.println("Connected Successfully To Oracle");
         con.close();
      }
         catch(Exception ex)
         {
            ex.printStackTrace();
         }
   }
}

在这两种情况下,程序都会编译,但引发错误的行是:

Class.forName("oracle.jdbc.driver.OracleDriver");

有什么帮助吗?谢谢

4

2 回答 2

0

首先,C:\Program Files\Java\jdk1.7.0_01\bin从您的类路径中删除。它与它无关。

其次,问题在于您的运行时类路径。请记住,编译时类路径和运行时类路径是两个不同的东西。您是否使用 IDE(例如 Eclipse)来运行它?如果是这样,请检查哪些类路径条目在运行时生效。在 Eclipse 中,您可以通过查看为运行您的应用程序而创建的启动配置来获取此信息(请参阅“类路径”选项卡)。

如果您通过命令行设置类路径,那么里面的空白可能Program Files是问题所在。尝试用引号将整个类路径参数括起来。

于 2012-12-03T01:42:55.443 回答
0

我正在使用 ojdb6.jar 而不是 ojdbc14.jar 它对我来说很好,这是我的代码

try{
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            String dbAddress = "localhost";
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:hr/hr@"+dbAddress+":1521/XE");

            if(!con.isClosed()){
                System.out.println("Connection Successful");
            }else{
                System.out.println("Connection is Closed);
            }
        }
        catch(Exception ex){
            System.out.println("Error :"+ex.getMessage());
        }
于 2014-03-18T12:15:23.510 回答