尝试与Access 2007数据库建立JDBC连接时出错。
环境详情:Windows 7 64-bit, JRE 7 64-bit, Access 2007 32-bit
:
driver = "sun.jdbc.odbc.JdbcOdbcDriver";
url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+database+";";
DriverManager.getConnection(url, dbusername, dbpassword);
我收到以下异常
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
答案 0 :(得分:1)
安装32位版本的Access只会安装32位版本的Access数据库引擎。明显的解决方法是从here下载并安装64位版本的Access数据库引擎,但如果64位安装程序在计算机上检测到任何32位Office应用程序,它将退出。所以,你的选择是:
切换到32位Java环境,或
切换到64位版本的Access。
答案 1 :(得分:1)
JdbcOdbcDriver只是ODBC的桥梁。您正在使用Access 32位,因此它的ODBC为32位。您将无法在普通的ODBC管理器中看到它,并且必须使用C:\ Windows \ SysWOW64 \ odbcad32.exe才能看到它。因此,Java 64将无法找到它。
基本上,你要做的事情是不可能的。您应该使用Java 32位来运行它。我认为Access 2007没有ODBC 64位,但如果你使用Java 64是最重要的,那么你可以试试这个路径。无论如何你的问题的根源是在Window 64你有2个不同的DSN集,一个用于64 -bits和一个32位,只能使用C:\ Windows \ SysWOW64 \ odbcad32.exe
查看