No suitable driver (conexión sin class.forName)
Perdón por repetir un tema ya tratado, el de la recepción de un error 'No Suitable Driver' en una conexión de bases de datos. Pero la cuestión es que buscado en internet y en vários foros y no he encontrado solucción al problema.
Mi código es:
import java.net.*;
import java.sql.*;
File f =new File("/proyectos/cloudscape/consumo/derby.jar");
URL urls[] = {f.toURL()};
ClassLoader cl = Thread.currentThread().getContextClassLoader();
URLClassLoader carga = new URLClassLoader (urls, cl);
Class clase = carga.loadClass("org.apache.derby.jdbc.EmbeddedDriver");
clase.newInstance();
String para ="jdbc:derby:C:/proyectos/cloudscape/consumo/1882/");
Connection DBConexion = DriverManager.getConnection(para);
//... consultas a la base de datos...
Como veis no quiero poner el driver en el classpath sino que quiero cargarlo dinámicamente.
En pruebas he añadido el driver al CLASSPATH y funciona bien el mísmo código, pero sin él en el CLASSPATH recibo un "No Suitable Driver" cuando intenta establecer la conexión a la base de datos en:
DriverManager.getConnection(para);
El que con el CLASSPATH funcione significa que el código de conexión a la base de datos no está mal.
Lo lógico sería pensar que el driver no ha sido cargado, pero he añadido funciones como trazas e indican lo contrario. O estoy equivocado o sólo queda que uno y otro no se leen.
¿Puede darme álguien algún consejo?
Gracias.
Mi código es:
import java.net.*;
import java.sql.*;
File f =new File("/proyectos/cloudscape/consumo/derby.jar");
URL urls[] = {f.toURL()};
ClassLoader cl = Thread.currentThread().getContextClassLoader();
URLClassLoader carga = new URLClassLoader (urls, cl);
Class clase = carga.loadClass("org.apache.derby.jdbc.EmbeddedDriver");
clase.newInstance();
String para ="jdbc:derby:C:/proyectos/cloudscape/consumo/1882/");
Connection DBConexion = DriverManager.getConnection(para);
//... consultas a la base de datos...
Como veis no quiero poner el driver en el classpath sino que quiero cargarlo dinámicamente.
En pruebas he añadido el driver al CLASSPATH y funciona bien el mísmo código, pero sin él en el CLASSPATH recibo un "No Suitable Driver" cuando intenta establecer la conexión a la base de datos en:
DriverManager.getConnection(para);
El que con el CLASSPATH funcione significa que el código de conexión a la base de datos no está mal.
Lo lógico sería pensar que el driver no ha sido cargado, pero he añadido funciones como trazas e indican lo contrario. O estoy equivocado o sólo queda que uno y otro no se leen.
¿Puede darme álguien algún consejo?
Gracias.
