0

Iam trying to connect java with ms-access i get following errors

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at msaccesssample.sample.main(sample.java:11)

Here is my java code

package msaccesssample;
import java.sql.*;
public class sample {


    public static void main(String[] args)
    {
        try
        {

              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              Connection con = DriverManager.getConnection("jdbc:odbc:satish");
              Statement st = con.createStatement();
              ResultSet rs=st.executeQuery("select * from sample");

        }
        catch(Exception e)
        {
            e.printStackTrace();


        }

    }

}

Actually i created satish as DSN and added database name as test.accdb.the problem is already asked many times in forum but i dont know whelther its a driver problem or programming problem.my system is 64 bit with windows 8 and my odbc is 32 bit.I couldn't get the ms access drivers in 64 bit.Is there any way to load ms access drivers in 64 bit??????

user3808015
  • 37
  • 2
  • 8

1 Answers1

0

You are using a JDBC ODBC Bridge driver which is part of the Java Runtime. Can you try this simple test, to do a sanity, taken from reference:

import java.sql.*;
public class LoadJdbcOdbcDriver {
  public static void main(String [] args) {
    Connection con = null;
    try {

// Load the JDBC-ODBC bridge driver
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
      System.out.println("JDBC-ODBC driver loaded ok.");

    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
    }
  }
}

This should give you output:

C:\>javac LoadJdbcOdbcDriver.java

C:\>java LoadJdbcOdbcDriver
JDBC-ODBC driver loaded ok.

If you again get ClassNotFound, that means, rt.jar is not present in your path. Check your JAVA_HOME and PATH, check rt.jar is available.

Sairam Krish
  • 10,158
  • 3
  • 55
  • 67