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


  驱动程序已成功加载无法连接:[Microsoft] [ODBC驱动程序
  管理员]找不到数据源名称,并且未指定默认驱动程序
  java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]数据源
  找不到名称,也没有在以下位置指定默认驱动程序
  sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)在
  sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)在
  sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)在
  sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
  在sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)在
  java.sql.DriverManager.getConnection(DriverManager.java:571)在
  java.sql.DriverManager.getConnection(DriverManager.java:233)在
  GUI的数据库(Database.java:35).GUI的(GUI.java:33)
  GUI $ 41.run(GUI.java:564)在
  java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)在
  java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)在
  java.awt.EventQueue.access $ 200(EventQueue.java:103)在
  java.awt.EventQueue $ 3.run(EventQueue.java:694)在
  java.awt.EventQueue $ 3.run(EventQueue.java:692)在
  java.security.AccessController.doPrivileged(本机方法),位于
  java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)
  在java.awt.EventQueue.dispatchEvent(EventQueue.java:703)在
  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)
  在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();

最佳答案

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

关于java - 无法连接到MS Access数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24981264/

10-16 18:55
查看更多