2

After taking the advise from the helpful users here I have made some changes to my code. What am I missing to get this driver to load? I was advised to get Jackcess, and I have included it in my library. and I am using java 8 I am not getting past

Connection conn = DriverManager.getConnection(database, "", ""); 

before it throws a bunch of exceptions.

import java.sql.*;
import javax.swing.JOptionPane;
import java.sql.DriverManager;
 private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {                                       

    try {
        String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=db1.mdb;";
        Connection conn = DriverManager.getConnection(database, "", "");
        //String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        //Class.forName(driver);
        // String db = "jdbc:odbc:db1";
        //con = DriverManager.getConnection(db);
        st = conn.createStatement();
        System.out.println("it actually ready this set of code!");
        String un = UserName.getText().trim();
        String pw = Password.getText().trim();
        String sql = "select user,pass from Table2 where user='"+un+"'and pass='"+pw+"'";
        rs=st.executeQuery(sql);
        int count = 0;
        while(rs.next()){
            count = count+1;
        }
        if (count==1){
            JOptionPane.showMessageDialog(null,"User, Found Access Granted!");
        }
        else if (count>1){
            JOptionPane.showMessageDialog(null,"Duplicate User, Access Denied!");
        } 
        else {
            JOptionPane.showMessageDialog(null, "user doesn't exsist. ");
        }

    } catch (Exception ex){
            System.out.println("exception 2, " );
            ex.printStackTrace();
    }

    // TODO add your handling code here:
}   

These are the exception errors I am getting:

exception 2, 
java.sql.SQLException: No suitable driver found for jdbc:odbc:Driver=   {Microsoft Access Driver (*.mdb)};DBQ=db1.mdb;
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at cdeventplanner.CdEventPlannerLogin.SubmitActionPerformed(CdEventPlannerLogin.java:118)
at cdeventplanner.CdEventPlannerLogin.access$100(CdEventPlannerLogin.java:14)
at cdeventplanner.CdEventPlannerLogin$2.actionPerformed(CdEventPlannerLogin.java:67)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Gord Thompson
  • 116,920
  • 32
  • 215
  • 418
CAPTiNDANCE
  • 87
  • 1
  • 8
  • Have you tried using UCanAccess? http://ucanaccess.sourceforge.net/site.html http://stackoverflow.com/questions/21955256/manipulating-an-access-database-from-java-without-odbc – Luke Woodward May 07 '15 at 20:09

1 Answers1

3

You're trying to access a DB using JDBC. According to the Jackcess FAQ, the Jackcess driver doesn't support JDBC:

Does Jackcess provide a JDBC driver for Microsoft Access databases?

Unfortunately, no. The Jackcess API is a direct implementation of the features available for interacting with an Access database. There is currently no implementation of the JDBC API included with the Jackcess library. While this library would be a great foundation for a JDBC driver, implementing the JDBC API is currently outside the scope of this project. There have been a few attempts to use Jackcess to build JDBC drivers for Access databases, but most of the projects have not progressed very far before becoming inactive. The UCanAccess project, however, is a currently active open source project which provides a JDBC driver built on top of Jackcess.

More info about how to use Jackcess's proprietary DB API is available here.

Gord Thompson
  • 116,920
  • 32
  • 215
  • 418
Dathan
  • 7,266
  • 3
  • 27
  • 46