2013-04-02 2 views
-1

은 JDBC Oracle Connectivity의 간단한 프로그램입니다. 보고 왜 드라이버가로드되지 않는 오류가 발생할 수 있는지 알려주십시오. 도서관에 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()에서 콜론 (:)이 아닌. (점)을 사용하십시오. 따라서 Class.forName ("oracle.jdbc.driver.OracleDriver")을 사용하십시오. –

+0

오류/예외를 공유 할 수 있습니까? – Jabir

답변

0

다음과 같이 클래스 이름을 전달해야합니다.

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

전체 패키지 이름이 String 형식 인 드라이버 구현 클래스.

그래서 반사 API는

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

사용

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

+2

'Class.forName'의 인자는'Class' 객체가 아닌 String입니다. – mthmulders

+0

죄송합니다. 그것을 편집했다. . 주요한 것은 패키지 이름을 가진 완전한 경로를 가진 클래스라는 것입니다. 리플렉션 API는 런타임 중에이 클래스를로드 할 수 있습니다. –

+0

안녕 .. ':'을 '.'로 변경하십시오. class.forName에서 일했습니다. 모두 도움을 주셔서 감사합니다. 또한 JPS5에 사용해야하는 최신 JDK와 항아리가 필요한 이유는 무엇입니까? – user2236029

0

대신 실행 시간 동안이 클래스를로드하고 당신이 당신의 클래스 경로에 odbc14.jar 파일이 있는지 확인 할 수 있습니다.

+1

이것이 웹 응용 프로그램이라는 것을 나타내는 질문에는 아무 것도 없습니다. 사실 단순한 응용 프로그램이므로 WEB-INF에 넣는 것은 효과가 없습니다. BTW 난 대답을 downvote하지 않았다 ... – maba

+0

@ maba 코드에서 실수를 가리키는 주셔서 감사합니다. – Bhushan