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.
Ciao,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); } }![]()

Rispondi quotando