无法连接到MS Access数据库

时间:2014-07-27 13:09:35

标签: java database ms-access

我已将我的学校IT项目带回家完成,虽然我可以在学校时连接到我的数据库,但我无法在自己的计算机上连接到它。我更改了数据库类中的目录,我几乎100%确定该目录是正确的。它总是给我这个错误:

  

驱动程序已成功加载无法连接:[Microsoft] [ODBC驱动程序   管理器]未找到数据源名称且未指定默认驱动程序   java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]数据源   找不到名称,并且未指定默认驱动程序   sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)at at   sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)at at   sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)at at   sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)   在sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)at at   java.sql.DriverManager.getConnection(DriverManager.java:571)at   java.sql.DriverManager.getConnection(DriverManager.java:233)at   数据库。(Database.java:35)在GUI。(GUI.java:33)at   GUI $ 41.run(GUI.java:564)at   java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)at   java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)at at   java.awt.EventQueue.access $ 200(EventQueue.java:103)at   java.awt.EventQueue $ 3.run(EventQueue.java:694)at   java.awt.EventQueue $ 3.run(EventQueue.java:692)at   java.security.AccessController.doPrivileged(Native Method)at   java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)   在java.awt.EventQueue.dispatchEvent(EventQueue.java:703)at   java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)   在   java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)   在   java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)   在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)   在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)   at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

这是我的数据库代码

public class Database {
   private static final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";

private static final String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\my-pc\\Documents\\NetBeansProjects\\MotorBikeApp\\MotorBikeApp\\Database\\Database1.accdb";

private Connection connection;
private PreparedStatement statement;
private ResultSet resultSet;

public Database()
{
    try 
    {
        Class.forName(driver);
        System.out.println("Driver successfully loaded");
    } 
    catch (ClassNotFoundException c) 
    {
        System.out.println("Unable to load driver");
    }

    try 
    {
       connection = DriverManager.getConnection(url);
        System.out.println("Connection Successful");
    } 
    catch (Exception e) 
    {
        System.out.println("Unable to connect: " + e.getMessage());
        e.printStackTrace();
    }
}
}

当我尝试在GUI类中创建数据库的新实例时,我收到错误。我使用以下代码来做到这一点。

Database db = new Database();

1 个答案:

答案 0 :(得分:2)

我通过下载和安装2010 MS Access数据库引擎解决了这个问题。 它可以在这里下载 Microsoft Access Database Engine 2010 Redistributable