我已经把学校的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/