Foros del Web » Programación para mayores de 30 ;) » Java »

Dudas con versión del driver de conexión Oracle

Estas en el tema de Dudas con versión del driver de conexión Oracle en el foro de Java en Foros del Web. Estoy intentando realizar una conexión entre Java y Oracle pero la clase con la que me conecto me manda un error de excepción... ClassnotFoundException, lo ...
  #1 (permalink)  
Antiguo 03/03/2012, 14:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Dudas con versión del driver de conexión Oracle

Estoy intentando realizar una conexión entre Java y Oracle pero la clase con la que me conecto me manda un error de excepción... ClassnotFoundException, lo que se me hacía muy raro pues el driver ya lo había cargado y la cadena de conexión está correcta así que buscando por ahí me dí cuenta que el problema podría estar en la versión del controlador y ya indagando más aún, me doy cuenta que cada versión del JDK necesita un tipo específico de controlador OJBC o classes12, etc.

Bien, yo tengo instalado el JDK 1.6 que supongo venía con el Netbeans 7.0 que acabo de instalar pero la base de datos está en Oracle 10g que es la versión que descargué (porque estoy en un curso) y no encuentro hasta ahora versión de OJBC que conecte Oracle 10g con JDK 1.6

Mi pregunta es: hay algún driver que pueda utilizar para hacer esta conexión? o de plano tengo que usar otra versión de JDK? o migrar la base de datos a Oracle 11g o de plano la ClassNotFoundException es por otra cosa (jajajaja)???

Soy bastante novato y comienzo apenas en esto de la programación y las bases de datos, les agradecería que no me hablaran con tantos tecnicismos pero si no hay otra opción, ni hablar.

Saludos y de antemano muchas gracias
  #2 (permalink)  
Antiguo 03/03/2012, 15:31
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Dudas con versión del driver de conexión Oracle

Hola:

La versión de java en principio no tiene mucho que ver, salvo quizás temas de compatiblidad de código compilado.

El driver del conector es específico de la base de datos y de la versión de la misma. Oracle antes usaba classes12.zip, ahora se llama ojdbc14.jar http://www.oracle.com/technetwork/da...01-088211.html

Para otras bases de datos como MySQL, PosgreSQL, etc necesitarías otros drivers en la versión adecuada para esa base de datos.

Tienes que añadir el jar con el conector (en tu caso el ojdbc14.jar) al classpath o como librería de tu proyecto netbeans, si no, te dará el ClassNotFound.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 05/03/2012, 15:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

Lo que me comentas de agregar el driver a la librería de proyecto en Netbeans ya lo hice pero aun así me sigue saliendo el error de Excepción y si no es lo que estoy suponiendo, entonces... qué podrá ser? porqué me sale el error si ya tengo el driver cargado?
  #4 (permalink)  
Antiguo 05/03/2012, 15:40
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

La versión de java en principio no tiene mucho que ver, salvo quizás temas de compatiblidad de código compilado.

El driver del conector es específico de la base de datos y de la versión de la misma. Oracle antes usaba classes12.zip, ahora se llama ojdbc14.jar http://www.oracle.com/technetwork/da...01-088211.html

Para otras bases de datos como MySQL, PosgreSQL, etc necesitarías otros drivers en la versión adecuada para esa base de datos.

Tienes que añadir el jar con el conector (en tu caso el ojdbc14.jar) al classpath o como librería de tu proyecto netbeans, si no, te dará el ClassNotFound.

Se bueno.
Ya hice pruebas con otros drivers y nada me funciona. Me intriga que en la pàgina de Oracle venga por ejemplo ojdbc14 para JDK 1.4 y 1.5, classes12.jar para jdk 1.2 y 1.3 y mi JDk es 1.6 pero dices tú que no tiene nada que ver... bueno de cualquier manera dejo mi código con el que estoy intentando conectarme.

Código:
package bdofertas;

import java.sql.*;

public class ConexionBD {
    static Connection conexion;//nos permite establecer una conexion con la BD
    static Statement sentencia;//envia sentencias sql
    static String query = " ";
    static ResultSet resultado;
            
    public static void conectar(){
        String ruta = "jdbc:oracle:thin:@jvazquez-dell:1521:XE";
        String usuario = "giaterm";
        String password = "giaterm";
        try{
            Class.forName("oracle.jdbc.Driver.OracleDriver").newInstance();
            /*Para establecer una coneccion a la base de datos, llamamos al metodo
              getConnection de la clase DriverManager*/
            conexion = DriverManager.getConnection(ruta, usuario, password);
            /*Un objeto Statement se crea con el metodo createStatement de la clase
             connection*/
            sentencia = conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            System.out.println("CONECTO BIEN!!!");
        }catch(InstantiationException e){
            System.out.println("NO CONECTO!!");
            e.printStackTrace();
        }catch(IllegalAccessException e){
            System.out.println("NO CONECTO!!");
            e.printStackTrace();
        }catch(ClassNotFoundException e){
            System.out.println("NO CONECTO!!");
            e.printStackTrace();
        }catch(SQLException e) {
            System.out.println("NO CONECTO!!");  
            e.printStackTrace();
        }
    }
    
    //El metodo ejecutarConsulta hace uso de una sentencia " q " como parametro
    public static void ejecutarConsulta(String q) {
        query = q;
        try {
            /*Hace uso del metodo excuteQuery ocupando la sentencia pasada al metodo como
              parametro*/
            resultado = sentencia.executeQuery(query);
        }catch(SQLException e){
            System.out.println("NO SE EJECUTO QUERY!!");
            e.printStackTrace();
        }
    }
    /*El siguiente metodo tambien hara uso de una consulta como parametro. Este metodo
      nos permitira actualizar nuestra base de datos*/
    public static void ejecutarUpdate(String q){
        query = q;
        try{
            sentencia.executeUpdate(query);
        }catch(SQLException e){
            
        }
    }
    
    public static void main (String[]args){
        ConexionBD cBD = new ConexionBD();
        cBD.conectar();
    }

}
  #5 (permalink)  
Antiguo 05/03/2012, 16:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Dudas con versión del driver de conexión Oracle

Me hace la impresión de que "oracle.jdbc.Driver.OracleDriver" es "oracle.jdbc.driver.OracleDriver". Una d minúscula en vez de mayúscula.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 05/03/2012, 17:53
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

Cita:
Iniciado por chuidiang Ver Mensaje
Me hace la impresión de que "oracle.jdbc.Driver.OracleDriver" es "oracle.jdbc.driver.OracleDriver". Una d minúscula en vez de mayúscula.

Se bueno.
Hice lo que me dijiste pero no me dió resultado
  #7 (permalink)  
Antiguo 05/03/2012, 19:53
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

bien mi problema ha sido resulto.

lo que chidiang dijo poner Class.forName("oracle.jdbc.driver.OracleDriver").n ewInstance();
en lugar de Class.forName("oracle.jdbc.Driver.OracleDriver").n ewInstance(); es real, la "d" de driver debe ir en minúscula.

Pero principalmente el problema que tenía se debía a que el driver de conexión ojdbc14.jar debe ser agregado a la librería del proyecto en Netbeans.

Sucede que yo estaba agregando dicho driver en Services--> Databases --> Drivers--> clic derecho en drivers, opcion agregar driver y alli seleccionar el driver (tal como vi en muchas partes buscando en google y en muchos foros), pero esto no me estaba resultando.

Funcionó cuando lo agregue de la siguiente manera: clic derecho en el proyecto --> propiedades --> bibliotecas -- agregar Jar/Folder (bueno esto en NetBeans 7.0 que es lo que estoy usando) y alli seleccione el driver.

Otra cosa que es necesaria para que realice la conexión, es tener iniciados los servicios de Oracle que en este caso son OracleServiceXE y OracleXETNSListener.

Me funcionó incluso cuando quité el driver de la primera forma en que lo agregue aunque eso sí, fué necesario poner la d minúscula en driver tal como lo indicó chuidiang de lo contrario no conecta.

Soy tan específico porque consideró que puede haber otro alguién por ahí que este también angustiado como yo y además seguramente yo seguiré molestando aquí

Saludos y gracias a todos
  #8 (permalink)  
Antiguo 06/03/2012, 10:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Dudas con versión del driver de conexión Oracle

Cita:
Iniciado por biochemistry43 Ver Mensaje
Pero principalmente el problema que tenía se debía a que el driver de conexión ojdbc14.jar debe ser agregado a la librería del proyecto en Netbeans.
je,je, justo como te había comentado en la primera respuesta.....

Cita:
Iniciado por chuidiang Ver Mensaje
Tienes que añadir el jar con el conector (en tu caso el ojdbc14.jar) al classpath o como librería de tu proyecto netbeans, si no, te dará el ClassNotFound.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 06/03/2012, 13:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

Cita:
Iniciado por biochemistry43 Ver Mensaje
Sucede que yo estaba agregando dicho driver en Services--> Databases --> Drivers--> clic derecho en drivers, opcion agregar driver y alli seleccionar el driver (tal como vi en muchas partes buscando en google y en muchos foros), pero esto no me estaba resultando.
Yo lo hice de esta manera y asumí que se refería a lo mismo que tú me habías dicho jejeje y es que así lo encontré en muchos lugares en internet y en videos de youtube pero bueno... Gracias
  #10 (permalink)  
Antiguo 06/03/2012, 13:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 93
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Dudas con versión del driver de conexión Oracle

Cita:
Iniciado por biochemistry43 Ver Mensaje
Sucede que yo estaba agregando dicho driver en Services--> Databases --> Drivers--> clic derecho en drivers, opcion agregar driver y alli seleccionar el driver (tal como vi en muchas partes buscando en google y en muchos foros), pero esto no me estaba resultando.
Yo lo hice de esta manera y asumí que se refería a lo mismo que tú me habías dicho jejeje y es que así lo encontré en muchos lugares en internet y en videos de youtube pero bueno... Gracias

Etiquetas: clase, driver, dudas, netbeans, oracle, programa, versiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.