连接 Oracle 10g Express Edition 和 Java

Posted

技术标签:

【中文标题】连接 Oracle 10g Express Edition 和 Java【英文标题】:connecting Oracle 10g Express Edition and Java 【发布时间】:2012-12-03 01:31:52 【问题描述】:

我想连接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:\oracle\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");

有什么帮助吗? 谢谢

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

我没有使用 Eclipse,我使用的是 JGrasp,操作系统是 Windows 7,所以我尝试使用带引号和不带引号的类路径参数,但问题没有解决 该行抛出什么错误?您可以编辑您的问题并添加堆栈跟踪吗?【参考方案2】:

我使用的是 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());
        

【讨论】:

以上是关于连接 Oracle 10g Express Edition 和 Java的主要内容,如果未能解决你的问题,请参考以下文章

安装oracle10g 和oralce11g之后,plsql连接正常。有一个软件需要连接oracle,提示报错ORA-01804: 时区信息

myeclipse6.0 连接oracle10g的问题 ORA-00604,ORA-12705

oracle 10g 远程连接asm

如何连接具有选择性重复记录的表? (oracle10g)

oracle 10g 客户端连接数据库 出现ora-12154 错误

Oracle 10g 中的聚合字符串连接 [重复]