Java 连接到 Access 数据库
Posted
技术标签:
【中文标题】Java 连接到 Access 数据库【英文标题】:Java connect to Access Database 【发布时间】:2013-11-13 19:42:58 【问题描述】:我试图能够从访问数据库访问数据。
我已经在 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();
【问题讨论】:
您还可以查看 jacksess 库,它也适用于所有平台(即不是特定于 Windows 的)。在我看来,它也比面向 JDBC/ODBC 的驱动程序更易于使用。 不,Driver=MSAccessDriver ...
也不起作用。再看看我的回答。
更改了驱动程序以匹配您的答案,我相信。仍然得到同样的错误。我下载了 32 位和 64 位 jdk 两者都有。
System.out.println(System.getProperty("sun.arch.data.model"));
说什么?
64。那么它是 64 位的?
【参考方案1】:
除了上面评论中提到的双扩展问题(.accdb.accdb
)之外,你的代码将无法工作,因为你指定的驱动程序名称......
DRIVER=Microsoft Access Driver (*.accdb)
...不正确。没有具有该名称的 ODBC 驱动程序。想要打开较旧的.mdb
数据库文件的 32 位应用程序可以使用
Driver=Microsoft Access Driver (*.mdb)
要从 64 位应用程序打开 .mdb
文件,或从 任何 应用程序打开 .accdb
文件,您需要使用
Driver=Microsoft Access Driver (*.mdb, *.accdb)
【讨论】:
所以我取出了 String 数据库并将 connURL 更改为 String connURL = "jdbc:odbc:Driver=MSAccessDriver (*.mdb, *.accdb);DBQ="+"C:\ \Users\\alexmac\\Desktop\\OASDatabase\\OAS_Database.accdb"; @user214577 如果您向edit您的问题提供新信息,对所有相关人员来说会更容易。以上是关于Java 连接到 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章
无法从 Java WebService 连接到 MS Access 数据库
无法使用 ODBC 驱动程序将 Java 程序连接到 Access 2010 数据库