2014-12-11 2 views
0

안녕하세요, 저는 Eclipse와 Java 오라클 데이터베이스 연결을 연습하고 있습니다. " 'jre7 -"lib에 "내 프로젝트에 폴더java.lang.ClassCastException 오류

Exception in thread "main" java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot be cast to connection.Connection 
    at connection.Connection.main(Connection.java:18) 
내가에서 모든"항아리 "파일을 가져

가 :

다음
package connection; 

import java.sql.* ; // for standard JDBC programs 
import java.math.* ; // 

public class Connection { 

    public static void main(String[] args) throws SQLException { 
     try { 
       Class.forName("oracle.jdbc.driver.OracleDriver"); 
      } 
      catch(ClassNotFoundException ex) { 
       System.out.println("Error: unable to load driver class!"); 
       System.exit(1); 
      } 

     String URL = "jdbc:oracle:thin:C##AVIVI/[email protected]:1521:oracleavivi"; 
     Connection conn = (Connection) DriverManager.getConnection(URL); 

는"ERROR "입니다 : 아래

내 코드입니다 (나는 초보자이다. 그래서 어느 항아리가 필요한지 잘 모르겠다. 그래서 이것들을 모두 가져 왔고, 이것이 연결에 영향을 줄지 모르겠다.)

답변

2

Connection은 모호하다 (컴파일러가 아니라면) 여기가 n 인 것처럼 당신의 주요 클래스의 화염 :

 Connection conn = (Connection) DriverManager.getConnection(URL); 
    //^^^^^^^^   ^^^^^^^^^^ 
    // connection.Connection, not java.sql.Connection 

어느 것이 클래스 이름을 바꾸거나 완전한 클래스 인터페이스 이름을 사용

 java.sql.Connection conn = DriverManager.getConnection(URL); 
+0

캐스트 자체가 필요하지 않습니다. 'DriverManager'는 이미'java.sql.Connection'을 리턴합니다. –

+0

@Mark 지적 해 주셔서 감사합니다. OP의 코드에 이미 있기 때문에 나는 원래의 답변으로 캐스트를 보냈습니다. 그러나 당신 말이 맞습니다. 이것은 쓸모가 없습니다. 나는 그것을 제거했다. –

0

가령 당신의 클래스 이름을 바꿉니다 MyFirstOracleTest (리팩토링하여 이름 바꾸기 -> 이름 바꾸기)

관련 문제