Buenas, estoy intentando conectar mi base de datos access con un programa java, en principio he puesto esto:
private final String NombreBD = "dbGesGolf.mdb";
private final String ConexionBD = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + this.NombreBD;
private String SentenciaSQL;
private Connection CanalBD;
private Statement Instruccion;
private ResultSet Resultado;
public ConexionAccess()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
this.CanalBD = DriverManager.getConnection(this.ConexionBD);
this.Instruccion = this.CanalBD.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(SQLException SQLE)
{
JOptionPane.showMessageDialog(null,"ERROR EN LA CONEXION CON BD\nERROR : " + SQLE.getMessage());
}
catch(ClassNotFoundException CNFE)
{
JOptionPane.showMessageDialog(null,CNFE.getMessage() + "ERROR DRIVER BD JAVA\nERROR : ");
}}
me salta el error de CNFE (ERROR DRIVER BD JAVA) y nose por que ya he puesto mi access en el administrador de base de datos ODBC.
si alguien me pudiese ayudar lo agradeceria. muchas gracias de antemano.
Si usas Java 7 no es necesario cargar el driver odbc:
// ya no es necesario
Class.forName("jdbc.odbc.JdbcOdbcDriver");
Si usas Java 8 lamento decirte que ha sido removido por considerarse deprecated. Y Oracle tiene razón en considerarlo así.
El primer inconveniente es que ese driver, tiene algunos problemas con Unicode, no muestra algunos carácteres correctamente y puede que en Español no de problemas, pero en otros lugares donde hablen otros lenguajes sí.
Otro inconveniente es que sólo funciona en plataforma Windows. Y por último, existen dos versiones: para 32bits y 64bits. Totalmente innecesario, puede haber conflicto si usas las dos versiones en tu aplicación.
Alternativamente, te recomiendo la librería UCanAccess (http://ucanaccess.sourceforge.net/site.html). Es una librería escrita en 100% puro Java y que hace uso de Jackess (http://jackcess.sourceforge.net/) y HSQLDB (http://hsqldb.org/).
Ésta librería depende de las anteriormente mencionadas y también de Apache Log4j (http://logging.apache.org/log4j/2.x/). Afortunadamente cuando bajes el zip de UCanAccess, estarán ahí incluidas todas las librerías de las que depende.
AGREGAR LAS LIBRERÍAS AL PROYECTO
Eclipse: Click derecho sobre el proyecto, ir a la opción
Build Path y elegir la opción
Configure Build Path.... Se te abrirá una ventana, aquí haz click en
Add External JARs o en
Add JARs si tienes las librerías en un folder dentro de tu proyecto y Eclipse te mostrará una ventana para que selecciones las librerías. Una vez seleccionadas las librerías, debe quedarte así:
(http://i.stack.imgur.com/Bql1e.png)
Netbeans: Expande el proyecto y haz click en la carpeta
Libraries y elige
Add JAR/folder. Luego solo navega hasta las librerías en la ventana que te muestra y elígelas. Luego de agegar las librerías debe quedarte así:
(http://i.stack.imgur.com/e5FKa.png)
Ahora ya puedes trabajar con tu BBDD Access muy fácilmente:
Connection conn=DriverManager.getConnection(
"jdbc:ucanaccess://D:/access_db/prueba/prueba.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [name] FROM [User]");
while (rs.next()) {
System.out.println(rs.getString(1));
}
Si resolviste tu duda, edita el título del post y agrégale al principio [Resuelto] y le asignas el ícono del check verde.