【发布时间】:2011-11-15 21:01:12
【问题描述】:
当我编写连接代码时,我尝试使用 jdbc-odbc 桥将我的 java 程序连接到 Access DB,抛出此异常,我无法解决问题
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:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
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:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at jdbc.TestAccesDBCon.getConnection(TestAccesDBCon.java:44)
at jdbc.TestAccesDBCon.main(TestAccesDBCon.java:21)
这是我的代码:
public static void main(String[] args) throws Exception {
Connection conn = getConnection();
Statement st = conn.createStatement();
st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM users");
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
System.out.println("resultSet MetaData column Count=" + numberOfColumns);
st.close();
conn.close();
}
private static Connection getConnection() throws Exception {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String connectionString = "jdbc:odbc:Driver= " +
"{Microsoft Access Driver (*.accdb)};DBQ=TestDB.accdb;DriverID=01";
Class.forName(driver);
return DriverManager.getConnection(connectionString);
}
为什么会抛出这个异常?请帮忙?
【问题讨论】:
-
发布生成异常的堆栈跟踪。
-
线程“main”java.sql.SQLException 中的异常:[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序
-
你的数据库在哪个目录?您可能想尝试指定整个事情
-
@dann.dev,在我的 java 项目的根目录中