【问题标题】:Connect to an Access database in Java using NetBeans使用 NetBeans 连接到 Java 中的 Access 数据库
【发布时间】: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 应用程序连接到数据库。先生,您能帮帮我吗?

标签: java ms-access netbeans jdbc-odbc


【解决方案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 的位置],然后将以下路径之一粘贴到那里。

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

      %WinDir%\Windows\SysWoW64

    2. 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";
      

      【讨论】:

        最近更新 更多