À partir de Java 8, le pont JDBC-ODBC ne sera plus inclus avec le JDK.
Class.forName("Sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Existe-t-il une autre solution pour connecter le pont JDBC-ODBC?
Nous pouvons toujours utiliser JDBC-ODBC Bridge dans Java 8 aussi, suivez simplement cette recette simple:
Copiez les dossiers Sun\jdbc et Sun\security\action, conservez la structure des dossiers. c'est-à-dire que vous devriez avoir la structure de dossiers comme ci-dessous:
Sun --> Security --> Action
--> JDBC
Ouvrez une fenêtre CMD. Accédez au dossier parent du dossier Sun. Exécutez la commande: jar -cvf jdbc.jar Sun
lib
. Si cela ne fonctionne pas, essayez le lib\ext
dossier.Eh bien, à mon avis cette entrée de blog par un employé d'Oracle dit tout:
Je vous recommande d'utiliser un pilote JDBC fourni par le fournisseur de votre base de données ou un pilote JDBC commercial au lieu du pont JDBC-ODBC.
Pour quel type d'application utilisez-vous le pont JDBC-ODBC?
Existe-t-il une autre solution pour connecter le pont JDBC-ODBC?
Sun et Oracle positions officielles ont longtemps été que -
le pont JDBC-ODBC [intégré à la JVM] doit être considéré comme une solution de transition [...] Oracle ne prend pas en charge le pont JDBC-ODBC.
Cependant, mon employeur, OpenLink Software , a produit des ponts commerciaux de type 1 entre JDBC et ODBC depuis JVM 1.0, et ceux-ci sont entièrement compatibles avec la JVM actuelle 1.8. Vous pouvez en savoir plus ici -
J'ai trouvé une solution raisonnable qui permet d'utiliser le code existant avec un changement uniquement pour ouvrir la logique de connexion à la base de données.
UCanAccess est un pilote JDBC open source.
http://ucanaccess.sourceforge.net/site.html
Cela a deux dépendances, dont l'une a deux autres dépendances.
jackcess-2.0.0.jar ou version ultérieure
commons-lang-2.4.jar
commons-logging-1.0.4.jar
hsqldb.jar (2.2.5)
Ce sont tous des logiciels libres. Effectuez une recherche sur Internet, téléchargez, décompressez si nécessaire et placez les quatre bocaux plus celui d'UCanAccess dans un répertoire de votre projet (par exemple JDBC-to-MSAccess). Si vous utilisez Ecplise, ajoutez à votre chemin de génération en choisissant dans le menu "Projet/Propriétés/Java Compilateur/Bibliothèques/Ajouter des fichiers JAR externes") et sélectionnez les cinq fichiers jar.
La logique de connexion est vraiment 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 );
Je sais que cette question a reçu une réponse depuis longtemps, mais je voulais souligner le lien de suite de DataDirect. Dans ce blog https://www.progress.com/blogs/jdbc-odbc-bridge-replacement-yields-performance-boost l'auteur explique comment leur pont peut générer une amélioration des performances de 310%. La version d'essai du pont peut être téléchargée ici: https://www.progress.com/jdbc/sequelink
Robert Petermeier a donné un bon point Les lecteurs H2 prennent en charge ODBC via le pilote PostgreSQL, et vous pouvez installer le pilote en conséquence le lien depuis Stackoverflow Configuration de PostgreSQL ODBC = sous Windows