Maison >Java >javaDidacticiel >Java `ClassNotFoundException : sun.jdbc.odbc.JdbcOdbcDriver` : pourquoi et comment y remédier ?

Java `ClassNotFoundException : sun.jdbc.odbc.JdbcOdbcDriver` : pourquoi et comment y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 09:13:13873parcourir

Java `ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver`: Why and How to Fix It?

java.lang.ClassNotFoundException : sun.jdbc.odbc.JdbcOdbcDriver Exception se produisant : pourquoi ?

Lors de la tentative de connexion à une base de données MS Access à l'aide d'un DSN en Java , une exception courante rencontrée est java.lang.ClassNotFoundException : sun.jdbc.odbc.JdbcOdbcDriver. Ce problème se produit pour plusieurs raisons.

Cause : classe de pilote JDBC-ODBC manquante dans le chemin de classe

L'exception ClassNotFoundException est généralement levée lorsque la machine virtuelle Java (JVM) ne peut pas localiser la classe spécifiée, dans dans ce cas, le sun.jdbc.odbc.JdbcOdbcDriver. Pour résoudre ce problème, assurez-vous que le fichier JAR du pilote JDBC-ODBC est inclus dans le chemin de classe de votre application.

Pilote obsolète pour Java 8 et supérieur

Pour Java 8 et supérieur, le pilote JDBC -ODBC Bridge a été obsolète et supprimé. Par conséquent, tenter d'utiliser l'instruction Class.forName() pour sun.jdbc.odbc.JdbcOdbcDriver entraînera l'exception susmentionnée.

Solution : mise à jour pour Java 8 et supérieur

Pour Java versions 8 et supérieures, l'approche recommandée pour se connecter aux bases de données Access consiste à utiliser des pilotes JDBC alternatifs tels que UCanAccess. Voici un extrait de code mis à jour utilisant UCanAccess :

import net.ucanaccess.jdbc.UcanaccessDriver;

// ...

try {
    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); // for MS Access with UCanAccess driver

    String conURL = "jdbc:ucanaccess://path/to/database.mdb";
    Connection con = DriverManager.getConnection(conURL);
    // ...
} catch (ClassNotFoundException ex) {
    // Handle exception
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn