Starting with Java 8, the JDBC-ODBC Bridge will no longer be included with the JDK.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Is there any other solution connecting JDBC-ODBC Bridge?
Starting with Java 8, the JDBC-ODBC Bridge will no longer be included with the JDK.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Is there any other solution connecting JDBC-ODBC Bridge?
We can still use JDBC-ODBC Bridge in java 8 too, just follow this simple recipe:
Copy sun\jdbc and sun\security\action folders out, keep the folder structure. i.e., you should have the folder structure like below:
Sun --> Security --> Action
--> JDBC
Open a CMD window. Go to the parent folder of Sun folder. Run the command: jar -cvf jdbc.jar sun
lib
folder. If that doesn't work try the lib\ext
folder.Well, in my opinion this blog entry by an Oracle employee says it all:
I would recommend that you use a JDBC driver provided by the vendor of your database or a commercial JDBC Driver instead of the JDBC-ODBC Bridge.
What kind of application are you using the JDBC-ODBC Bridge for?
Is there any other solution connecting JDBC-ODBC Bridge?
Sun's and Oracle's official positions have long been that --
the [JVM-bundled] JDBC-ODBC Bridge should be considered a transitional solution [...] Oracle does not support the JDBC-ODBC Bridge.
However, my employer, OpenLink Software, has produced enterprise-grade commercial Type 1 Bridges between JDBC and ODBC since JVM 1.0, and these are fully compatible with the current JVM 1.8. You can learn more here --
I found a reasonable solution that allows for use of existing code with a change only to open database connection logic.
UCanAccess is an open-source, JDBC driver.
http://ucanaccess.sourceforge.net/site.html
That has two dependencies, one of which has two more dependencies.
jackcess-2.0.0.jar or later
commons-lang-2.4.jar
commons-logging-1.0.4.jar
hsqldb.jar(2.2.5)
Those are all open-source. Do an internet search, download, unzip if necessary and put all four jars plus the one for UCanAccess in a directory in your project (e.g. JDBC-to-MSAccess). If using Ecplise, add to your build path by choosing from the menu "Project / Properties / Java Compiler / Libraries / Add External JARs" and select all five jar files.
The connection logic is really simple:
String strConnectionString = "";
Connection conAdministrator = null;
// Register driver
Class.forName( "net.ucanaccess.jdbc.UcanaccessDriver" );
// System.getProperty( "user.dir" ) => Current working directory from where application was started
strConnectionString = "jdbc:ucanaccess://" + System.getProperty( "user.dir" ) + "\\Your-database-name.<mdb or accdb>";
// Open a connection to the database
conAdministrator = DriverManager.getConnection( strConnectionString );
Robert Petermeier gave a good point H2 drives supports ODBC through PostgreSQL driver, and you can install the driver accordingly the link from Stackoverflow Setting up PostgreSQL ODBC on Windows