有人能帮我让我的数据库连接到java。我已经尝试了几个小时,但我仍然得到了这个异常:"java.sql。SQLException: [Microsoft][ODBC Driver Manager]数据源名称未找到且未指定默认驱动程序?"
public Connector() {
Connection con;
Statement st;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Database.mdb");
st = con.createStatement(1004, 1008);
} catch (Exception e)
e.printStackTrace();
}
}
下面是我得到的异常:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
您的Java代码在64位JVM (Java虚拟机)下运行,并试图使用较旧的"Jet" ODBC驱动程序Microsoft Access Driver (*.mdb)
。这不起作用,因为旧的"Jet"驱动程序只适用于32位应用程序。您要么需要
-
在32位JVM上运行Java程序,或者
-
从这里下载并安装64位版本的新"Access Database Engine ('ACE')",然后在64位JVM下运行代码时使用ODBC驱动程序名称
Microsoft Access Driver (*.mdb, *.accdb)
。
另外,请记住JDBC-ODBC桥已经从Java 8中删除了,所以继续使用它不是很"未来友好"。如需其他选项,请参见
从Java操作Access数据库,不使用ODBC