Search code examples
javaexceptionms-accessjdbcjdbc-odbc

Java database connectivity exception


I am connecting java to Microsoft access database but I am having following exception

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

try{
     String ProjectPath= System.getProperties().getProperty("user.dir");
     System.out.println(ProjectPath);
     String path,fullstring;
     path=ProjectPath+"\\data.mdb";
     fullstring="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +path;
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     Connection con=DriverManager.getConnection(fullstring);
     System.out.println("Connected");
 }catch(Exception e){

     System.out.println("Connected Error: "+ e);
     }

How can I solve my problem?


Solution

  • {Microsoft Access Driver (*.mdb)} is the name of the older Microsoft Jet driver, which will only work in 32-bit applications. (There are no 64-bit versions of the Jet database engine or the Jet ODBC driver.)

    To connect with .mdb and .accdb files from a 64-bit application you need to download and install the 64-bit version of the Access Database Engine (a.k.a. "ACE") from here, and then refer to it in your application by using the driver name {Microsoft Access Driver (*.mdb, *.accdb)}.