jdbcodbcdriver java jdbc odbc

java - jdbcodbcdriver - jdbc-odbc bridge driver download



Microsoft Access y Java JDBC-ODBC Error (1)

Intentando insertar algunos valores en una base de datos de acceso de Microsoft usando java.

Puedo un error sin embargo,

java.sql.SQLException: [Microsoft] [ODBC Driver Manager] El DSN especificado contiene una falta de coincidencia de arquitectura entre el controlador y la excepción de aplicación en el subproceso "principal" java.lang.NullPointerException

Para crear la fuente de datos im usando SysWoW64> odbcad32 y agregándole la fuente de datos al sistema DNS. Digo esto como he visto en otros lugares donde hay problemas que ocurren con los sistemas de 64 bits. Sin embargo, todavía no funciona para mí.

Microsoft Office 32bit.

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class AuctionHouseJDBC { /** * @param args */ public static void main(String[] args) { String theItem = "Car"; String theClient="Name"; String theMessage="1001"; Connection conn =null; // Create connection object try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Driver Found"); } catch(Exception e) { System.out.println("Driver Not Found"); System.err.println(e); } // connecting to database try{ String database ="jdbc:odbc:Driver={Microsoft Access Driver (*.accdb)};DBQ=AuctionHouseDatabase.accdb;"; conn = DriverManager.getConnection(database,"",""); System.out.println("Conn Found"); } catch(SQLException se) { System.out.println("Conn Not Found"); System.err.println(se); } // Create select statement and execute it try{ /*String insertSQL = "INSERT INTO AuctionHouse VALUES ( " +"''" +theItem+"'', " +"''" +theClient+"'', " +"''" +theMessage+"'')"; */ Statement stmt = conn.createStatement(); String insertSQL = "Insert into AuctionHouse VALUES (''Item'',''Name'',''Price'')"; stmt.executeUpdate(insertSQL); // Retrieve the results conn.close(); } catch(SQLException se) { System.out.println("SqlStatment Not Found"); System.err.println(se); } } }

StaceTrace:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)

Microsoft Office 64bit

He instalado la versión de 64 bits y ahora obtengo un error [Microsoft] [ODBC Driver Manager] No es un nombre de archivo válido.


Al principio, asegúrese de que puede acceder a esa base de datos a través de ODBC. Haga DSN en odbcad32 para odbcad32 de 64 y 32 bits. Luego, como JDBC connect string use: jdbc:odbc:[CreatedDSN] . Si no puede conectarse a Access en la versión de 64 bits de odbcad32 , asegúrese de que funciona en la versión de 32 bits de odbcad32 y asegúrese de utilizar una versión de Java de 32 bits.

También eche un vistazo a otras respuestas a: No se puede conectar a MS Access DB con Windows-64bit

Especialmente interesante es el enlace a: http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/