使用 NetBeans 连接到 Java 中的 Access 数据库

Posted

技术标签:

【中文标题】使用 NetBeans 连接到 Java 中的 Access 数据库【英文标题】:Connect to an Access database in Java using NetBeans 【发布时间】:2013-11-15 17:45:09 【问题描述】:

如何在 Java 中连接到 Access 数据库?

我是这样做的:

package inspection.management.system;

import java.sql.*;

/**
 *
 * @author Fuhans
 */

public class Database 

    public static void DatabaseConnectivity()
    
        try
        
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            String url = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + "d:\\program files\\project\\program\\inspection management system\\db1.accdb";

            Connection conn = DriverManager.getConnection(url);

            System.out.println("Connection Successful");
            InfoBox.ShowMessageBox("Connection Successful!", "Success");
         

        catch (Exception e) 
        
            System.err.println("Got an exception!");
            System.err.println(e.getMessage());

            InfoBox.ShowMessageBox("Got an Exception!", "Error");
            InfoBox.ShowMessageBox(e.getMessage(), "Error");
        
    


if (_textField1.equals("Fuhans") && _passwordField1.equals("Xavega"))
        
            Sound.PlaySound(1);
            InfoBox.ShowMessageBox("Successfully Login!", "Success");
            Database.DatabaseConnectivity();
        

当我成功登录时,它给了我数据库错误:

我做错了什么?

【问题讨论】:

您是否使用 ODBC 管理器应用程序创建了数据源? 不是,在 ODBC 管理员应用程序中,我没有 Ms 访问驱动程序,我只有 SQL 驱动程序。但是现在对于这个应用程序,我正在使用 Ms Access。 那么如果没有安装Access ODBC驱动,那么你希望如何连接到Access db呢? 在c#中,我只是通过代码连接它,不需要设置所有的东西,只需创建一个数据库并通过代码访问它。但是现在我正在使用 Java,但我不知道如何将我的 Java 应用程序连接到数据库。先生,您能帮帮我吗? 【参考方案1】:

在 ODBC 管理员应用程序中,我没有 Ms 访问驱动程序,我只有 SQL 驱动程序。

现在 JDBC-ODBC 桥已从 Java 中删除(自 Java 8 起),您应该考虑使用 UCanAccess JDBC 驱动程序。它是一个纯 Java 实现,因此也可以在非 Windows 平台上运行。

有关详细信息,请参阅

Manipulating an Access database from Java without ODBC

【讨论】:

【参考方案2】:

您应该先创建一个 DSN(数据源名称)。

在控制面板中,如果您已经安装了驱动程序,但没有可以访问的驱动程序,那么您可能无法获得 odbcad32.exe 文件路径。 从中选择您的路径,然后右键单击 Data Sources(ODBC)[您正在创建 DSN 的位置],然后将以下路径之一粘贴到那里。

    Odbcad32.exe 文件的 32 位版本位于:

    %WinDir%\Windows\SysWoW64

    Odbcad32.exe 文件的 64 位版本位于:

    %WinDir%\Windows\System32

在访问时,这样做:

String url = "jdbc:odbc:dsn_name";
Connection conn = DriverManager.getConnection(url);

【讨论】:

【参考方案3】:

更改语句:

String url = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + "d:\\program files\\project\\program\\inspection management system\\db1.accdb";

到:

String url = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + "C://program files//project//program//inspection management system//db1.accdb";

【讨论】:

以上是关于使用 NetBeans 连接到 Java 中的 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux (Mageia) 上的 NetBeans 中从 Java 应用程序连接到 MariaDB

为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]

将 Xampp 连接到 Netbeans IDE (8.0.2)

在 IDE Netbeans 中从 java 连接到 MySQL 数据库

Java(netbeans):数据库已连接到 SQL Server,我需要从 netbeans 界面更新和删除数据

Netbeans 连接到 SQLite 时出现 SQLite 错误或缺少数据库(没有这样的表)