在myeclipse中使用access时,报错java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver,
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:DatabaseOfFirst");
查资料发现自己的jdk版本(jdk1.8)不再内置jdbc-odbc桥,网上大多解决方法是换更低版本的JDK,觉得不能从根本上解决问题,于是自行导入Access JDBC Driver-jar解决问题。
1.检查当前JDK版本
window-preferences-Java-install jres
如果当前版本低于1.8,不建议采用如下方法。
2.查找合适Access的jdbc-driver
下载链接
网上大多数版本驱动都是SQL的,我自己试了老是不成功,读者可自行尝试。
3.导入jar到myeclipse
- 将下载完成之后的zip文件(我的是UCanAccess-4.0.4-bin)解压至指定文件夹(我放在自己的JDK/jre/bin/新建文件夹下,建议放在JDK目录)
- 回到myeclipse,右键项目目录,Build-Path – Configure Build Path – Java Build Path – add External JARS,选择并导入你刚刚解压之后的jar所在目录下(例如我的新建文件夹是DatabaseDriver2,路径就是D:\JDK\jre\lib\DatabaseDriver2\UCanAccess-4.0.4-bin)的所有jar文件(包括子目录下)。
4.修改代码如下(此处应各有不同,仅做参考)
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); //改动一
System.out.println("驱动加载完毕");
Connection conn = DriverManager.getConnection(UcanaccessDriver.URL_PREFIX + "E:/database/Database2.mdb" +";newDatabaseVersion=V2003" ); //改动二:E:/database/Database2.mdb 是你自己数据库的绝对路径,newDatabaseVersion=V2003
//查询示例代码:
Statement stat = conn.createStatement();
stat.executeUpdate("INSERT INTO CELL1(id,Z,J) VALUES('2','佳','78')"); //CELL1为你自己的数据库的一个表名
stat.close();
conn.close();
总结:
- Access的jdbc驱动比较难找,我不知道为什么官网进不去,而网上很多下载链接不可用(呵呵,说了句废话)。
- 导入相应的jar之后,代码需要参照相应的Example进行改动,因为这并不是jdk1.8之前版本下的jar文件。