为什么我的代码不断出现 java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found 并且没有指定默认驱动程序?
Why my code keep getting java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified?
谁能帮我把我的数据库连接到 java。
我已经尝试了几个小时,但我仍然遇到这个异常:"java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified?"
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 程序,或
从 here 下载并安装更新的 "Access Database Engine ('ACE')" 的 64 位版本,然后在 运行 时使用 ODBC 驱动程序名称 Microsoft Access Driver (*.mdb, *.accdb)
您的代码在 64 位 JVM 下。
此外,请记住 JDBC-ODBC Bridge 已从 Java 8 中删除,因此继续使用它并不是很 "future-friendly"。有关替代方案,请参阅
Manipulating an Access database from Java without ODBC
谁能帮我把我的数据库连接到 java。 我已经尝试了几个小时,但我仍然遇到这个异常:"java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified?"
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 程序,或
从 here 下载并安装更新的 "Access Database Engine ('ACE')" 的 64 位版本,然后在 运行 时使用 ODBC 驱动程序名称
Microsoft Access Driver (*.mdb, *.accdb)
您的代码在 64 位 JVM 下。
此外,请记住 JDBC-ODBC Bridge 已从 Java 8 中删除,因此继续使用它并不是很 "future-friendly"。有关替代方案,请参阅
Manipulating an Access database from Java without ODBC