theNewb
theNewb

Reputation: 75

Ucanaccess Connection not being created

I have a very interesting issue and I'm not having any luck finding the source of the issue.

My company recently updated to a newer version of Java and the old ODBC connection method for connecting to an MS Access DB is no longer working. So I'm in the process of updating to a new method.

I found Ucanaccess which seems to be a good alternative as the connection is read only.

So following the getting started I updated the details in the code for Ucanaccess.

This is where i ran into a interesting problem.

I've added the following to my project

jackcess-2.1.3.jar

and update the connection creation code to the following

System.out.println("Establisting Connection.....");
Connection con = DriverManager.getConnection("jdbc:ucanaccess://Z:\\Database\\test.accdb");
System.out.println("Connection Establisted.....");

The first database I used was password protected so I thought that might be causing the issue so I switched to a new database. The second database was on a shared drive so i mapped the location to the above. Even with those two changes I'm still getting the same issue.

The problem is that each time i run the DriverManager.getConnection line the code it never reaches the System.out.println("Connection Establisted....."); line. There is no error messages and the program is still running so no crash. The strange thing is that if i put an invalid path in i do get to that line. Though i do get an error saying the file doesn't exist.

I've had no luck tracking down a solution to this issue.

Upvotes: 1

Views: 1140

Answers (1)

Diego Cortes
Diego Cortes

Reputation: 184

I think could be problems with the URL connection. It works for me:

public class ConnectionUcanaccess {

    static
    {
        try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            System.out.println("driver loaded");
        } catch (ClassNotFoundException e) {
            System.out.println("the class driver can't be loaded");
        }
    }

    static Connection getConnection() throws SQLException {
     return DriverManager.getConnection("jdbc:ucanaccess:///Users/shared/Desktop/database.accdb");
    }

    public static void main(String[] args){

        try {
            Connection con = ConnectionUcanaccess.getConnection();
            System.out.println("Connected: " + !con.isClosed());

        } catch (SQLException e) {
            System.out.println("Error:" + e.getMessage());
        }
    }
}

Upvotes: 2

Related Questions