-2

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?

5
  • Off-topic, but do you ever use JPA ? It's really more comfortable than JDBC. Take a look, you're going to like it ;) Commented Oct 18, 2013 at 8:09
  • possible duplicate of How to connect MS Access Database using Java program? Commented Oct 18, 2013 at 8:09
  • Have you tried connecting via your IDE? What is the Url? Commented Oct 18, 2013 at 8:10
  • Is your Java application running in a 64-bit Java Virtual Machine (JVM)? Commented Oct 19, 2013 at 10:27
  • 1
    Yes it is working on 64 bit Java Virtual Machine Commented Oct 19, 2013 at 12:41

3 Answers 3

1

{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)}.

Sign up to request clarification or add additional context in comments.

Comments

0
    import java.sql.*;
    class dbTst {
public static void main(String args[]) throws Exception{
    try{


    //Driver for JDBC-ODBC Bridge
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    //Establishing the Connection through DSN
    Connection con= DriverManager.getConnection("jdbc:odbc:db","","");

    //Creating the Statement Object
    Statement st=con.createStatement();


    ResultSet rs=st.executeQuery("Select * from aman");

    while(rs.next()==true){

    System.out.println(rs.getString("name")+" - " + rs.getString("basic"));
    }

    rs.close();
    st.close();
    con.close();
    }
            catch(Exception ee){
                System.out.println(ee.getMessage());
    }
}
}

1 Comment

Its is giving same exception [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
-1

I think that you want to connect in some strange way..

http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

The code (use DriverManager):

public Connection getConnection() throws SQLException {
    Connection conn = null;
    Properties connectionProps = new Properties();
    connectionProps.put("user", this.userName);
    connectionProps.put("password", this.password);

    if (this.dbms.equals("mysql")) {
        conn = DriverManager.getConnection(
               "jdbc:" + this.dbms + "://" +
               this.serverName +
               ":" + this.portNumber + "/",
               connectionProps);
    } else if (this.dbms.equals("derby")) {
        conn = DriverManager.getConnection(
               "jdbc:" + this.dbms + ":" +
               this.dbName +
               ";create=true",
               connectionProps);
    }
    System.out.println("Connected to database");
    return conn;
}

2 Comments

While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
There is also a possibility to connect via eg. Eclipse perspective called: Database perspective.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.