gpt4 book ai didi

Java 连接到 Access 数据库

转载 作者:行者123 更新时间:2023-12-01 13:50:54 25 4
gpt4 key购买 nike

我试图能够从 Access 数据库 Access 数据。

我已在 ODBC 管理器下为 *.mdb 和 *.accdb 文件配置了 odbc 驱动程序。我通过并行使用 Windows 7(不确定这是否有区别)

当我运行该程序时,出现以下错误:

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:6964)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)
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:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at DataAccess.main(DataAccess.java:13)

起始代码:

import java.sql.*;

public class DataAccess
{
public static void main(String[] args)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+"C:\\Users\\alexmac\\Desktop\\OASDatabase\\OAS_Database";

String table = "Student";
Connection conn = DriverManager.getConnection(connURL, "", "");
Statement s = conn.createStatement();

// Fetch table
String selTable = "SELECT * FROM " + table;
s.execute(selTable);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next()))
{
System.out.println(rs.getString(1) + " : " + rs.getString(2));
}

// close and cleanup
s.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}

最佳答案

除了上面评论中提到的双重扩展问题(.accdb.accdb)之外,您的代码将无法工作,因为您指定的驱动程序名称...

DRIVER={Microsoft Access 驱动程序 (*.accdb)}

...不正确。没有具有该名称的 ODBC 驱动程序。想要打开较旧的 .mdb 数据库文件的 32 位应用程序可以使用

驱动程序={Microsoft Access 驱动程序 (*.mdb)}

要从 64 位应用程序打开 .mdb 文件,或从任何应用程序打开 .accdb 文件,您需要使用

驱动程序={Microsoft Access 驱动程序(*.mdb、*.accdb)}

关于Java 连接到 Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962889/

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