Question: I'm trying to create a simple connection using the jdbc-odbc bridge:

```
public static Connection  getConnection() {
    Connection con =null;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" +
            "c:\\myfolder\\accesdbfile.accdb";
        con = DriverManager.getConnection(conStr);
    } catch(Exception e) {
        e.printStackTrace();}
    return con;
}

```

But then I get this exception:

```
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0xa4 Thread 0xec0 DBC 0x2f8574c                                                              Jet'.

```

Any ideas?

Update 24/Mar/2009: Now it's working. Created a User Data Source, and for some reason the exception went away.

As a general question, What would be the best way to handle database connections in Java?

Answer: 
In general, the best way to work with an RDBMS in Java is by using a JDBC driver that is designed to connect directly to the database. Using the JDBC-ODBC bridge tends to be sloww.

If you are trying to do basic read/write manipulations with an Access database, I would also recommend taking a look at the [Jackcess](http://jackcess.sourceforge.net/) library.
1. Go to control panel -- > Administrative tool --> ODBC Data Source Administrator
2. Add database --> Select "Microsoft Driver(\*.mdb, \*.accdb)"
3. Dobule click on new database --> Under "Database" click on "select" --> Select your \*.accdb file which you hv created as MS access database.
4. Say OK and go to your java code
5. Use:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:filename");

It will surely resolve all your problem.