Tempo fa ho provato a costruire un oggetto Connessione, specifico
per Database Access, per il porting di applicazioni VB60 in Java.
Ho scelto questo approccio, perchè, una volta creato, questo oggetto
è riutilizzabile tutte le volte che devi accedere ad un MDB.

Tieni presente che per funzionare devi avere un DSN che individua
il file .mdb.

Ti posto la classe di Connessione e il modo semplice per utilizzarla.


codice:
/*
 * Connessione.java
 *
 * Created on 22 luglio 2004, 21.33
 */


import java.io.*;
import java.lang.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import java.net.URL;

/**
 *
 * @author  Brainjar
 */
public class Connessione {
    
    /** Creates a new instance of Connessione */
    public Connessione() {
    } // Connessione

    
    public void apriConnessione(String sorgente) {
        try {
            Class.forName(class_driver);
        } catch (Exception e) { e.printStackTrace();}
        try {
            DBConnection = null; 
            DBConnection = DriverManager.getConnection(url_connect + sorgente); 
            SQLStatement = DBConnection.createStatement(); 
        }  catch (Exception ex) { ex.printStackTrace();}
    } // apriConnessione
        
    public ArrayList eseguiQuery(String q) {
        try {
            rsQuery = SQLStatement.executeQuery(q); 
            rsmd = rsQuery.getMetaData();
        }  catch (Exception ex) { ex.printStackTrace();}
        ArrayList recordset = new ArrayList();
        ArrayList record;  
	String rsField;        
        try {
            int nCols = rsmd.getColumnCount(); 
            while (rsQuery.next()) {
                record  = new ArrayList();
                for (int ctCol = 0; ctCol <  nCols; ctCol++) {
                    rsField = rsQuery.getString(ctCol + 1); 
                    record.add(record.size() , rsField);
                }
                recordset.add(recordset.size(), record); 
            }
        }  catch (Exception ex) { ex.printStackTrace();}
        return recordset;  
    } // eseguiQuery

    public static String class_driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
    public static String url_connect  = "jdbc:odbc:";
    public static Connection DBConnection;
    public static ResultSetMetaData rsmd; 
    public static Statement  SQLStatement; 
    public static ResultSet  rsQuery; 
    public static String str; 
}



// per utilizzarla : 
// 1) La classe Connessione la tieni nella stessa directory del 
//    tuo progetto 
// 2) Oppure fai una immport 
// 3) Oppure fai un jar. 
// All'inizio ti conviene sicuramente il sistema 1)
      
        // Nella classe che utilizzi per accedere ai dati :
        Connessione connessione = new Connessione();
        ArrayList lista;      // <--- Il Recordset 
        ArrayList listaCampi; // <--- L'insieme dei campi
        connessione.apriConnessione("NOME_DSN");
        lista = connessione.eseguiQuery("SELECT ......");
        // Per puro esempio. 

        // Scorre i records uno per uno .....
        for (int i=0; i<lista.size(); i++) { 
             listaCampi = (ArrayList)lista.get(i);
             // Scorre la listaCampi uno per uno .....
             for (int j=0; j<lista.size(); j++) { 
                 String campo = (String)listaCampi.get(j);
             }
        }
Ciao,