ODBC-JDBC de access

silviuxa
01 de Septiembre del 2005
Hola:
Tengo un pequeño problema con el ODBC JDBC de access para java: he hecho una mini aplicacion java que incluye jsps, servlets y beans, pero por alguna extraña razon, cuando intento invocar mi clase de conexion a la BD me manda el siguiente error en pantalla:
Excepcion al conectar la base de datos: Can't find resource for bundle java.util.PropertyResourceBundle, key db.driver
esto a pesar de que la conexion esta bien, es decir, los datos que le doy para la conexion:


public class ConectaDB implements HttpSessionBindingListener
{
private static Connection ConexionDB ;
private static ResourceBundle bdProperties;
private static String dbLog;
private static String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String dbURL = "jdbc:odbc:DBRecibos;user=recibos;password=recibos;";


public ConectaDB() throws BdException
{
try
{

bdProperties = ResourceBundle.getBundle("db");
driver=bdProperties.getString("db.driver");
dbURL=bdProperties.getString("db.url");
//System.out.println("Driver " + driver + " URL " + dbURL);
Class.forName(driver);
ConexionDB=DriverManager.getConnection(dbURL);
//dbLog= DriverManager.setLogWriter;

}
catch (ClassNotFoundException e)
{
ConexionDB=null;
throw new BdException(e.getMessage());
}
catch (SQLException e)
{

throw new BdException("Driver no Cargado: " + e.getErrorCode() + e.getMessage() + e.getSQLState());
}
catch (Exception e)
{
throw new BdException("Excepcion al conectar la base de datos: " + e.getMessage());
}
}


Algun consejo, opinion o algo por el estilo?

Gracias!

ruben_
01 de Septiembre del 2005
Hola:
Quizás estás haciendo mal la conexión con Access.
Aquí te envío un ejemplo hecho por mi por si te ayuda.
La URL quizás te esté dando problemas.
Mi código es éste:



package pruebas;

// Importaciones necesarias
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

// Definición de la clase
public class AccesoBD
{
public static void main (String[] args)
{
// Declaramos la conexión, el controlador (driver) y la url donde
// se encuentra nuestra base de datos
Connection conexion;
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String NombreBase = "C:/Archivos de programa/Apache Software Foundation/Tomcat 5.0/webapps/Base1.mdb";
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + NombreBase;

// Query de consulta de la tabla Agenda ordenada por Id
String consultaSQL = "SELECT * FROM Agenda ORDER BY Id";

try
{
// Cargamos el controlador y realizamos la conexión con la base de datos
Class.forName(driver);
conexion = DriverManager.getConnection(url);

// Creamos un objeto de consulta
Statement consulta = conexion.createStatement();

// Creamos una tabla de resultados con los datos de la consulta
ResultSet registros = consulta.executeQuery(consultaSQL);

// Para contar los registros, creamos un vector cuyo tamaño nos dará dicho número
Vector numeroRegisros = new Vector();
int numero = 0;


// Mientras haya registros, aplicamos el proceso
while (registros.next())
{
String id;
String nombre;
String apellidos;
String telefono;
String movil;

// Asignamos las variables a los campos de la tabla
id = registros.getString(1);
nombre = registros.getString(2);
apellidos = registros.getString(3);
telefono = registros.getString(4);
movil = registros.getString(5);

// Añadimos el primer campo al vector y vamos calculando los respectivos
// tamaños según se vayan añadiendo elementos
numeroRegisros.add(id);
numero = numeroRegisros.size();

// Imprimimos los resultados
System.out.println("ID: " +id+ " ");
System.out.println("nNombre: " +nombre+ " " +apellidos+ " ");
System.out.println("nTeléfonos fijo/móvil: " +telefono+ "/" +movil+ " ");

// Calculamos si el número de registros es par o impar según vayamos
// añadiendo elementos
if(numero%2==0)
{
System.out.println("Nº de Registros: " +numero+ "(Par)n");
}
else
{
System.out.println("Nº de Registros: " +numero+ "(Impar)n");
}
}
}
catch (Exception excepcion)
{
System.out.println("No se pudo realizar la conexión " +excepcion.getMessage());
}
}
}