Use Microsoft Access with Java

How do you connect to an Access-based database with JDBC?

Q: Two questions:

  1. How do you connect to a Microsoft Access-based database (in a Windows system) using JDBC?
  2. In Class.forName(....) and DriverManager.getConnection(....), what driver and URL should you use?

A: There are two techniques available for connecting to a data source using JDBC. First, if your program will talk to an ODBC data source, you can use the JDBC-ODBC bridge included with your JDK. In the case of Sun, you would use sun.jdbc.odbc.JbdcOdbcDriver.

Specifically, using Class.forName:


or the command line:

java -Djdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver 

Second, you can connect to your data source through a third-party, vendor-specific bridge. In the case of a third party driver, you simply substitute that driver for the JDBC-ODBC bridge driver.

See the Resources section below for a link to Sun's database of available drivers.

Once you have a driver loaded and your data source set up, getting a connection is a simple matter of feeding the correct URL, name, and password to the getConnection() method.

A JDBC URL takes the following form:


In the case of Microsoft Access and the ODBC bridge, it would take the form:


where is the name that you gave the data source when you set it up.

As an aside for those using other drivers, is the name of the connectivity mechanism used by the driver.

In my answer, I've assumed quite a bit of JDBC knowledge. If you're completely new to JDBC, or even if you just need to brush up your skills a bit, head on over to the JDBC Short Course (see Resources), an excellent training course that will get you up to speed quickly.

Tony Sintes is a principal consultant at BroadVision. Tony, a Sun-certified Java 1.1 programmer and Java 2 developer, has worked with Java since 1997.

Learn more about this topic