您好我有以下代码连接到Windows 7操作系统上的MS Access数据库。我已将数据源快捷方式更改为指向64位odbc然后32位。但仍然得到错误
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at TestDBConnection.main(TestDBConnection.java:21)
我的代码是:
import java.sql.Connection;
import java.sql.DriverManager;
public class TestDBConnection {
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
System.out.println("filename");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database =
"jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Test\\Tests.mdb";
Connection conn = DriverManager.getConnection(database, "", "");
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
我怎么有SQL Workbench工具,我可以通过它连接到它而不是通过java代码。
在过去3个小时在Google上搜索时,我正在努力解决这个问题。
答案 0 :(得分:8)
如果您的Java应用程序在64位Java虚拟机(JVM)中运行,那么DRIVER={Microsoft Access Driver (*.mdb)}
将不起作用,因为没有64位版本的Jet数据库引擎。你可以......
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}
。......或......
DRIVER=
字符串。如果您选择此选项,相关答案here可能会有所帮助。......或......
答案 1 :(得分:1)
您可以为Microsoft提供的64位ODBC驱动程序
http://www.microsoft.com/en-us/download/details.aspx?id=13255
答案 2 :(得分:0)
1)您必须配置System dsn(驱动程序Microsoft Access驱动程序( .mdb, .accdb)) 2)在上面的配置中链接.mdb数据库 并在下面写下代码。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database = "jdbc:odbc:systemdsnname";
Connection conn = DriverManager.getConnection(database, "", "");