【发布时间】:2011-10-16 09:21:31
【问题描述】:
我想编写一个程序来从 MS Access 数据库中检索数据。我写的程序如下:
package db;
import java.sql.*;
public class MSaccess_archive {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String accessFileName = "E:/L4_project/sample/db/Database";
String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb;";
Connection con = DriverManager.getConnection(connURL, "","");
Statement stmt = con.createStatement();
stmt.execute("select * from student"); // execute query in table student
ResultSet rs = stmt.getResultSet(); // get any Result that came from our query
if (rs != null)
while ( rs.next() ){
System.out.println("Name: " + rs.getString("Name") + " ID: "+rs.getString("ID"));
}
stmt.close();
con.close();
}
catch (Exception err) {
System.out.println("ERROR: " + err);
}
}
}
但我得到了如下异常:
错误:java.sql.SQLException:[Microsoft][ODBC Microsoft Access 驱动程序] 找不到文件“(未知)”。
当我使用.mdb 文件时,上述程序可以正常工作,但如果我使用.accdb 文件,则会出现上述异常。
有什么想法吗?
【问题讨论】:
-
不确定但尝试更改斜杠: String accessFileName = "E:/L4_project/sample/db/Database";双反斜杠: String accessFileName = "E:\\L4_project\\sample\\db\\Database";
-
谢谢。它正在工作...... :)
-
请注意,JDBC-ODBC 桥已从 Java 8 中删除并且不受支持(参考:here 和 here)。 UCanAccess 是一种流行的替代方案(详情 here)。