2013-02-18 4 views
3

Я пытаюсь подключиться к базе данных Oracle 10 XE с использованием тонких драйверов Oracle, но я не могу этого добиться. Я даже добавил драйверы в мой путь к классам во время компиляции.Не удается подключиться к базе данных oracle с помощью тонких драйверов jdbc

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.Properties; 

public class Connectivity { 
    public static void main(String args[]) throws SQLException { 
     String url = "jdbc:oracle:thin:@localhost:1521:XE"; 
     Properties props = new Properties(); 

     props.setProperty("user", "SYSTEM"); 
     props.setProperty("password", "iiita"); 

     try { 
      Class.forName ("oracle.jdbc.driver.OracleDriver"); 
     } catch (ClassNotFoundException e) { 
      System.out.println(e.getMessage()); 
     } 
     Connection conn = DriverManager.getConnection(url,props); 
     String sql ="select sysdate as current_day from dual"; 

     PreparedStatement preStatement = conn.prepareStatement(sql); 

     ResultSet result = preStatement.executeQuery(); 

     while(result.next()){ 
      System.out.println("Current Date from Oracle : " + result.getString("current_day")); 
     } 

     System.out.println("done"); 

    } 
} 

Этот код дает следующее сообщение об ошибке во время работы

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521/XE 
    at java.sql.DriverManager.getConnection(DriverManager.java:644) 
    at java.sql.DriverManager.getConnection(DriverManager.java:202) 
    at Connectivity.main(Connectivity.java:16) 

ответ

1

Вы забыли указать ojdbc14 классам, когда работает главный класс:

Для Windows: java -cp .;<path>/ojdbc14.jar Connectivity

В Linux: java -cp .:<path>/ojdbc14.jar Connectivity

P.S. Вам не нужно ojdbc14.jar для вашего класса, чтобы скомпилировать основной класс. Это зависимость от времени выполнения. не

+0

Ошибка: не удалось найти или загрузить основной класс. Подключение – khirod

+0

. команда из той же директории, где размещается Connectivity.class? – ZhekaKozlov

+0

да, конечно, я – khirod

3

Добавьте эту строку перед вызовом getConnection(url, props)

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

Это не достаточно, чтобы банки на вашем пути к классам, если только это драйвер jdbc> 4.0. Вы должны фактически зарегистрировать драйвер с помощью DriverManager.

Изменение jdbc:oracle:thin:@localhost:1521:XE - jdbc:oracle:thin:@//localhost:1521:XE. Я считаю, что это новый синтаксис.

Compile в

javac -classpath /<your_path>/ojdbc6.jar Connectivity.java 

Запуск от имени

java Connectivity 
+0

та же проблема все еще сохраняется после модификации – khirod

+0

см вопроса я редактировал – khirod

+0

мой JDBC драйвер ojdbc14.jar – khirod

Смежные вопросы