有人可以帮助我让我的数据库连接到
java.
我已经尝试了几个小时,但我仍然有这个例外:“java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]找不到数据源名称,没有指定默认驱动程序?”
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驱动程序(* .mdb).这是行不通的,因为较旧的“Jet”驱动程序仅适用于32位应用程序.你要么需要
>在32位JVM下运行Java程序,或
>从here下载并安装较新的“Access数据库引擎(‘ACE’)”的64位版本,然后在64下运行代码时使用ODBC驱动程序名称Microsoft Access驱动程序(* .mdb,* .accdb)位JVM.
另外,请记住JDBC-ODBC Bridge已从Java 8中删除,因此继续使用它并不是“非常适合未来”.有关替代方案,请参阅