我已将我的学校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();
答案 0 :(得分:2)
我通过下载和安装2010 MS Access数据库引擎解决了这个问题。 它可以在这里下载 Microsoft Access Database Engine 2010 Redistributable