尝试通过Java 8中的JDBC-ODBC连接到.accdb文件时出现ClassNotFou
发布时间:2020-12-15 05:11:40 所属栏目:Java 来源:网络整理
导读:我正在使用 Eclipse EE IDE中的Java项目,我必须查询.accdb文件. 问题是当我尝试加载驱动程序然后连接到数据库时,它给我一个异常错误. 我的代码: try{ String filePath = "//myfilepathtomydb/BLABLA/example.accdb" Class.forName("sun.jdbc.odbc.JdbcOdbcD
我正在使用
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. 如果有人可以解释我的问题,任何错误或愚蠢的事情,我说也可以随意纠正我,将不胜感激. 解决方法
根据
this帖子,在Java8中删除了JDBC-ODBC Bridge.您可以专门为Access使用JDBC驱动程序.我看到很多人提到
UCanAccess连接到Access,虽然我自己没有使用它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |