0
votes

I have taken my school IT project home to finish and although I could connect to my database while at school, I cannot connect to it on my own computer. I changed the directory in the database class and I am almost 100% sure that the directory is correct. It always gives me this error:

Driver successfully loaded Unable to connect: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:233) at Database.(Database.java:35) at 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 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) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Here is my database code

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();
    }
}
}

I get the error when I try to make a new instance of the database in my GUI class. I use the following code to do that.

Database db = new Database();
1

1 Answers

2
votes

I have resolved the problem by downloading and installing the 2010 MS Access database engine. It can be downloaded here Microsoft Access Database Engine 2010 Redistributable