当前位置: 首页 > 面试题库 >

尝试通过Java 8中的JDBC-ODBC连接到.accdb文件时,出现ClassNotFoundException

栾昂雄
2023-03-14
问题内容

我正在Eclipse EE
IDE的Java中的一个项目中,我必须查询一个.accdb文件。问题是当我尝试加载驱动程序然后连接到数据库时,它给了我一个异常错误。

我的代码:

try{
        String filePath = "//myfilepathtomydb/BLABLA/example.accdb"

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + filePath;

        Connection database = DriverManager.getConnection(url);

        System.out.println("Connection sucessful");

    } catch (ClassNotFoundException e){     
        System.err.println("Got an exception");
        System.err.println(e.getMessage());
        e.printStackTrace();
    } catch (SQLException sqle) {
        sqle.printStackTrace();
        // TODO: handle exception
    }

例外:

Got an exception
sun.jdbc.odbc.JdbcOdbcDriver
java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at project.Main.main(Main.java:15)

我在64位Windows中使用32位Eclipse,从我所读到的连接到数据库的方式中,64位JRE不支持这种方式,因此我使用了选择的32位JRE(
jdk1.8.0_05),在我的运行配置中,我在VM中使用了“ -d32”参数。

显然,它JdbcOdbcDriver应该在 rt.jar中
,但是当我寻找它时,我找不到以下软件包:sun.jdbc.odbc.JdbcOdbcDriver

如果有人可以阐明我的问题,我说的任何错误或愚蠢的事情也可以纠正我,我将不胜感激。


问题答案:

根据这篇文章,JDBC-
ODBC
Bridge已在Java8中删除。您可以使用专门用于Access的JDBC驱动程序。我看到很多人都提到UCanAccess连接到Access,尽管我自己并未使用它。



 类似资料:
  • 我试图通过使用sun.jdbc.odbc.jdbcodbcDriver通过Java访问Microsoft Excel文件。但是,我不断得到:“java.sql.sqlException:[Microsoft][ODBC Driver Manager]数据源名称未找到,且未指定默认驱动程序”。 干杯!

  • 我正在尝试连接到远程主机以发出命令,但在运行代码时收到以下错误消息: SSH:握手失败:SSH:密钥交换没有通用算法;提供的客户端:[curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 difffie-hellman-group14-sha1],提供的服务器:[difffie-h

  • 我有一个IP地址每次我收到连接失败的消息时,我都尝试了很多连接到该服务器的方法。出于安全原因,我隐藏了用户名和密码。 代码: 我有例外 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。org上的openConnectionImpl(ConnectionFactoryImpl.java:292)。postgr

  • 我正在尝试打开到Google Cloud Spanner数据库的JDBC连接,但我得到以下错误消息: IllegalArgumentException:此服务需要一个项目ID,但无法从构建器或环境中确定。请使用生成器设置项目ID。 我的JDBC URL如下: 如果从URL中删除属性,则会出现以下异常: java.sql.SqlNonTransientConnectionException:[Sim

  • 试图通过IMAP连接连接到gmail,捕获javax.mail.MessagingException 堆栈跟踪: 主:

  • 问题内容: 当我执行此代码时: 它说我有可用的驱动程序。 但是,当我尝试像这样使用它时: 它什么也没做-没有错误,也根本不起作用。它甚至不会执行到该行! 如何通过PDO和ODBC将PHP连接到此MSSQL数据库? 问题答案: 您需要设置几个配置文件。,而(这些位置是有效的Ubuntu 12.04,并可能是正确的大多数* nixes)。 您需要安装和(不确定CentOS上的软件包名称是什么)。在Ub