2013-04-02 123 views
-1

下面是我简单的JDBC Oracle连接程序。请看看并告诉我为什么我可能会得到驱动程序无法加载的错误。我已将odbc14.jar放在库中。JDBC驱动程序加载错误

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package databaseconnect; 

/** 
* 
* @author compaq 
*/ 
import java.sql.*; 

public class Education1 { 

    public static void main(String[] args) { 

     try{ 
      Class.forName("oracle:jdbc:driver:OracleDriver"); 
     }catch(Exception e) { 
     System.out.println("Failed to load Oracle driver."); 
     } 
try{ 
      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","system"); 
      Statement stmt=con.createStatement(); 
      stmt.executeUpdate("insert into Education(name,rollno) VALUES ('alankrit',1000)"); 
      System.out.println("Data inserted"); 
      con.close(); 


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

    } 

} 
+1

甚至没有看到它,我确定你的CLASSPATH是错误的。打印出来,我们会告诉你它应该是什么。 – KevinDTimm

+2

在class.forName()中,使用。(Dot)而不是冒号(:)。因此,请使用Class.forName(“oracle.jdbc.driver.OracleDriver”) –

+0

您可以请分享您遇到的错误/异常吗? – Jabir

回答

0

您需要传递类名称,如下所示,替换为:with。

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

驱动程序实现类,具有完整的包名称的字符串格式。

使反射API可以在运行时加载这个类

+2

“Class.forName”的参数是一个String而不是'Class'对象。 – mthmulders

+0

对不起。编辑它。 。主要的是参数是一个具有包名称的完整路径的类。 这样反射API可以在运行时加载这个类。 –

+0

Hi..changing':'到'。'在class.forName ..感谢您的帮助everyone..Also可以告诉我为什么我们需要罐子和哪个是最新的JDK5使用? – user2236029

0

,而不是

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

使用

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

,并确保你有odbc14.jar文件在类路径中。

+1

问题中没有任何内容表明这是一个Web应用程序。这实际上是一个简单的应用程序,因此将其放入WEB-INF中将不起作用。顺便说一句,我没有downvote你的答案... – maba

+0

@maba感谢指出错误的代码。 – Bhushan

相关问题