Java Access DB Connection

Intento realizar un proyecto con conexión a db (MS Access 2010) Utilizo este tutorial en CodeProject .

import java.sql.*; public class DbAccess { public static void main(String[] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;"; Connection conn = DriverManager.getConnection(database, "", ""); Statement s = conn.createStatement(); // create a table String tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0)); String createTable = "CREATE TABLE " + tableName + " (id Integer, name Text(32))"; s.execute(createTable); // enter value into table for(int i=0; i<25; i++) { String addRow = "INSERT INTO " + tableName + " VALUES ( " + String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value " + String.valueOf(Math.random()) + "')"; s.execute(addRow); } // Fetch table String selTable = "SELECT * FROM " + tableName; s.execute(selTable); ResultSet rs = s.getResultSet(); while((rs!=null) && (rs.next())) { System.out.println(rs.getString(1) + " : " + rs.getString(2)); } // drop the table String dropTable = "DROP TABLE " + tableName; s.execute(dropTable); // close and cleanup s.close(); conn.close(); } catch(Exception ex) { ex.printStackTrace(); } } } 

Pero obtengo una excepción extraña: java.sql.SQLException: [Microsoft] [???????? ????????? ODBC] ???????? ?????? ?? ?????? ? ?? ?????? ???????, ???????????? ?? ?????????

java.sql.SQLException: [Microsoft] [????????? ????????? ODBC] ???????? ?????? ?? ?????? ? ?? ?????? ???????, ???????????? ?? ????????? at sun.jdbc.odbc.JdbcOdbc.createSQLException (JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOacceso de la licencia de la licencia de la licencia de la licencia de la licencia de la que se puede obtener una fianza. ) at sun.jdbc.odbc.JdbcOdbcConnection.initialize (JdbcOdbcConnection.java:323) at sun.jdbc.odbc.Jdbb en las partes de las partes de las partes de las partes de la naturaleza: en java.sql.DriverManager.getConnection (DriverManager.java:221) en dbaccess.DbAccess.main (DbAccess.java:28)

Lo busco en Google y encuentro otras preguntas en Stack como esta: Stack Post

Así que agrego todos los controladores ODBC que pueden ayudarme a conectar el archivo * .mdb. Pero nada bueno hepend.

¿Qué es y cómo conectarse a Access DB?

No hay nada fundamentalmente incorrecto en su código porque lo pegué en Eclipse y funcionó bien. El único cambio que hice fue especificar la ruta al archivo de la base de datos, es decir, en lugar de usar

 DBQ=myDB.mdb 

solía

 DBQ=C:\\__tmp\\myDB.mdb 

También lo estaba ejecutando bajo una JVM de 32 bits (en una computadora de 32 bits). Entonces, mis sugerencias serían

  1. Intente especificar la ruta completa al archivo .mdb como lo hice.

  2. Si aún recibe un error, verifique su entorno Java para ver si su aplicación se está ejecutando en una JVM de 64 bits. Si es así, entonces Driver={Microsoft Access Driver (*.mdb)} no funcionará: no hay una versión de 64 bits del controlador Jet ODBC más antiguo. En ese caso tienes dos opciones:

    yo. Configure su aplicación para que se ejecute en una JVM de 32 bits, o

    ii. Descargue e instale la versión de 64 bits de Access Database Engine desde aquí , y luego use Driver={Microsoft Access Driver (*.mdb, *.accdb)} .

Ahora que el puente JDBC-ODBC se ha eliminado de Java 8, un mejor enfoque sería utilizar el controlador JDBC de UCanAccess . Para más información, ver

Manipulando una base de datos de Access desde Java sin ODBC

El progtwig JDBC usa el controladorsun.jdbc.odbc.JdbcOdbcDriver ” para conectarse a la base de datos de MS Access, hasta la versión Java 1.7

Referencia: http://www.benchresources.net/jdbc-msaccess-database-connection-steps/

Al iniciar la versión Java 1.8, el progtwig JDBC usa los controladoresnet.ucanaccess.jdbc.UcanaccessDriver ” para conectarse a la base de datos de MS Access

Referencia: http://www.benchresources.net/jdbc-msaccess-database-connection-steps-in-java-8/