gpt4 book ai didi

java - 在 java 中建立到 MS Access 数据库的 SQL 连接时找不到合适的驱动程序

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:36 24 4
gpt4 key购买 nike

我在一个简单的 Java 应用程序中有一个 Jbutton (GetDataFromDB),它假设将下面代码中路径中描述的数据库中的数据加载到应用程序中的 Jtable 中。

将答案编辑成代码:

private void GetDataFromDBActionPerformed(java.awt.event.ActionEvent evt) {                                              
Connection con;
ResultSet rs = null;
Statement stmt;

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Driver={MS Access Driver (*.mdb, *.accdb)};Dbq=C:\\Users\\Bruger\\Documents\\Database11.accdb");

stmt = con.createStatement();
String query = null;
query = "select * from cost";

rs = stmt.executeQuery(query);

i = 0;

while (rs.next()){
i = i + 1;
jTable.getModel().setValueAt(rs.getString(1), i, 1);
jTable.getModel().setValueAt(rs.getString(2), i, 2);
}


rs.close();
stmt.close();
con.close();
} catch(Exception err){
System.out.println(err.getMessage());
}

}

当我按下按钮时,我在运行输出窗口中收到以下消息:

找不到适合 jdbc:odbc:Driver={Microsoft Access Driver (.mdb, .accdb)};Dbq=C:\Users\Bruger\Documents\Database11 的驱动程序。 acdb

我在代码的顶部有导入:

import java.sql.*;

我也曾尝试将“Microsoft Access Driver”更改为“MS Access Driver”,但我在运行输出窗口中收到了相同的消息,即

找不到适合 jdbc:odbc:Driver={MS Access Driver (.mdb, .accdb)};Dbq=C:\Users\Bruger\Documents\Database11 的驱动程序。 acdb

非常感谢您的所有帮助、意见和反馈。

最佳答案

取决于驱动程序和如果您是 JDK 6 之前的版本**!

您需要注册驱动程序。

尝试添加:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

所以:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\Users\\Bruger\\Documents\\Database11.accdb");

还值得一提的是,您无需在每次建立连接时都执行此操作,只需执行一次以确保类已加载。

有很多与此相关的 stackoverflow 问题,但原因如下:

来源 - 来自 Java 教程:

In previous versions of JDBC, to obtain a connection, you first had to initialize your JDBC driver by calling the method Class.forName. This methods required an object of type java.sql.Driver. Each JDBC driver contains one or more classes that implements the interface java.sql.Driver. ... Any JDBC 4.0 drivers that are found in your class path are automatically loaded. (However, you must manually load any drivers prior to JDBC 4.0 with the method Class.forName.)


关于一个相关且非常重要的说明。

我还建议您查看如何处理连接。如果您不熟悉数据库连接和游标等外部资源,则很容易泄露它们。查找“try finally block ”,或最近在 java 7+ 中查找“try-with-resources”。

关于java - 在 java 中建立到 MS Access 数据库的 SQL 连接时找不到合适的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com