2012-02-20 5 views
0

프로그램이 DB에 연결되는 메인 창을로드 할 때 매우 간단한 응용 프로그램을 만들려고했습니다.Java 데스크톱 앱에서 JDBC를 통해 Oracle DB에 연결할 수 없습니다.

DB에 연결 부분에 주석을 달면 올바르게 작동합니다. 응용 프로그램은 오류가 표시되지 않으며 예외가 발생하지 않으므로 잘못된 점을 파악할 수 없습니다. 또한 내가 올바른 jar 파일을 추가 한 확신의 dbuser에, dbPass이 dbHost이 dbPort, dbService가 올바른 값으로 설정

public final class Database { 
    private final String dbURL = "jdbc:oracle:thin:@" + dbHost + ":" + dbPort + ":" + dbService; 
    private final String dbDriver = "oracle.jdbc.driver.OracleDriver"; 
    private Connection connection = null; 

    public Database() { 
     try { 
      System.out.println("Aqui 1"); 
      Class.forName(dbDriver); 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    private void connect() { 
     System.out.println("Dentro"); 
     try { 
      connection = DriverManager.getConnection(dbURL, dbUser, dbPass); 
     } catch (SQLException ex) { 
      Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    private void disconnect() { 
     try { 
      connection.close(); 
     } catch (SQLException ex) { 
      Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    public void numeroErrores(String dependencia){ 
     System.out.println("Hola"); 
     connect(); 
     disconnect(); 
     System.out.print("Adios"); 
    } 
} 

, 내가 확인하고이를 다시 확인해했습니다 : 내 코드를 게시 oracle-jdbc. 그것은 일종의 응답 (아무런 오류도 없기 때문에 아무 것도 표시되지 않지만 System.out.println은 거기에 넣었습니다)은 connect() 메서드를 호출 할 때 응답하지 않습니다.

아이디어가 있으십니까?

+0

어떻게 당신이 디버깅? 우리는 어떤 종류의 예외가 필요합니다. – Max

+0

아무런 예외도 없습니다. NetBeans에서 일하고 있습니다. 디버거를 사용하여 뭔가를 볼 수 있었는지 알 수는 없지만 ... 잘못된 것을보기위한 아이디어가 있습니까? 여기에 게시하려면 디버깅을 살펴볼 수 있습니까? – BRabbit27

+0

포트가 열려 있는지 (방화벽 - 로컬 또는 그 중간에 있음) 수신 대기자가 호스트의 원격 연결을 허용합니까? 나는 종종 java 기반의 쿼리 툴을 사용하여 자바를 통한 원격 연결을 확인한다. – hburde

답변

0

그 데이터
를 추가하는 경우 디버거를 해달라고 경우 당신이 정확한 위치를 알 수 있도록 모든 행에 디버그 인쇄를 추가, 참조,
일반 예외와 Throwable를 모두 잡기 시도 디버그 인쇄 또는 catch 문이 충분하지 않습니다 당신이 ojdbc6.jar이있는 경우
, DriverManager.getConnection를하기 전에이 권한을 추가해보십시오 :

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());


그냥 만들기 위해 반드시

+0

일반 Exception 및 Throwable로 시도했지만 메시지가 전혀 없습니다. 나는 ojdbc6.jar를 사용하고 게시 한 줄과 아무 것도 시도하지 않았습니다. 일부 인쇄물을 사용하여'connection = DriverManager.getConnection()'이 제대로 작동한다는 것을 알았지 만, 프로그램이 그 라인을 넘기지 않았거나, 어떤 이유로 getConnection() 메소드 내부의 루프를 넘기지 않았습니다. – BRabbit27

+0

연결 시간 제한은 매우 길 수 있습니다 (최대 몇 분까지 걸릴 수 있음). 3 분에서 5 분 정도 기다려서 연결 제한 시간을 확인할 수 있습니다. db 머신에 ping을 수행 할 수 있습니까? –

+0

나는 (희망을 갖고) 무언가가 나타날 때까지 앱을 돌릴 것이다. db 머신은 괜찮습니다. sqlDeveloper를 사용하여 쿼리를 만들고 있습니다. 타임 아웃이 표시되면 게시하겠습니다. – BRabbit27

관련 문제