Click here to Skip to main content
15,867,141 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
When I am using JInternalFrame where and how am I able to connect a MS Access database using a separate class? I already create a class as the following.

Java
import java.sql.*;
import javax.swing.*;
public class Connect {
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
public static Connection ConnectDB(){
    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=Database1.mdb");
        JOptionPane.showMessageDialog(null, "Connection Established");
        return conn;

    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
        return null;
    }
}

    
        
    }


The JInternalFrame as

Java
public class ItemDetails extends javax.swing.JInternalFrame{

   

}



I think in this JInternalFrame's inside I should put my database connecting statements. But Where and how?


Thank You

Chiransj
Posted

1 solution

NO.

That's the constructor. That one is by definition not supposed to execute code.

Java
public class ItemDetails extends JInternalFrame{

  private Connection oConnection = null;

  public ItemDetails(){
    
  }

  private Connection getDBConnection(){
    if(null == oConnection){
      Connection oConnection = Connect.ConnectDB();
    }
    return oConnection;
  }
}


you can at any time access that function and try to get the connection.
If it is not valid, the connection is created new. Interesting, because server connection get sometimes "lost" (e.g. due to exceptions).
 
Share this answer
 
Comments
TorstenH. 23-Dec-12 7:06am    
oh - keep the other class for creating the connection. That has nothing to do with the GUI - so it should stay separated.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900