Starting with Java 8, the JDBC-ODBC Bridge will no longer be included with the JDK.
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); // classNotFoundExceptio
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 );
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?
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
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.How to enable JDBC-ODBC bridge for JDK 8