BETA, la rivista ipertestuale tecnica
BETA
BETA, la rivista ipertestuale tecnicaBarra BETA
Barra Sito Beta.it

BETA 2199.4 - Programmazione: Scriviamo un'applicazione client/server JDBC (seconda parte)  -  Indici | Guida

Clicca qui!

Scriviamo un'applicazione client server JDBC

Supporto database della nostra applicazione

Seconda Parte | Prima Parte

Stefano Carfagna
Articolista, BETA

Dobbiamo realizzare la prima parte del lato server, vale a dire la gestione dell'accesso ai dati contenuti nel database ODBC compatibile. Inizieremo con una breve descrizione di JDBC-ODBC per concludere con la realizzazione delle funzioni Java. A fine articolo ci sono i sorgenti completi. Per ogni ulteriore dettaglio su JDBC si fa presente che il sito della Sun è ricco di documentazione.

JDBC-ODBC

Il supporto database di Java è necessariamente indipendente da una specifica piattaforma. Ciò significa che Java mette a disposizione del programmatore una serie di interfaccie (classi con dichiarazioni di metodi, JDBC) per accedere alle chiamate standard di gestione database.

Java offre la possibilità di richiamare procedure scritte in codice "nativo" creando corrispondeze tra metodi di una classe e funzioni esportate da DLL (Windows), o librerie in genere (altri sistemi).

Il produttore di database che vuole permettere agli sviluppatori Java di utilizzare il proprio DBMS deve fornire le classi Java che "implementano" le interfacce standard per l'accesso ai database. Queste classi possono operare richiamando metodi nativi.

JDBC-PRODUTTORE

Se si utilizza Windows è possibile accedere direttamente a tutti i database che supportano lo standard ODBC di Microsoft grazie alle classi scritte dalla Sun. Esse sfruttano l'interfaccia standard ODBC chiamando metodi nativi con essa compatibili.

JDBC-ODBC

Naturalmente il prezzo da pagare in quest'ultima soluzine è una diminuzione di velocità. ODBC deve interfacciarsi a sua volta con in produttori di database. Il vantaggio è che ogni database compatibile con ODBC è direttamente utilizzabile in Java.

MS ACCESS per Windows

Il database management system scelto per la nostra applicazione è Access di Microsoft. Esso deve essere installato sulla macchina dove girerà la parte SERVER.

SApplet.MDB è il file che contiene la tabella Anagrafica per la gestione del nostro archivio (Il database).

Tabella Anagrafica
Codiceautoinc
RagSocchar(80)
Indirizzochar(80)
Cittachar(80)
Telefonochar(80)

SYSTEM DSN (Data Source Name)

JDBC può interagire con ODBC per prendere le informazioni sulle fonti dati disponibili (System Data Source Name). Una fonte dati è quindi la mappatura di un database specifico (Access, Oracle, SyBase ...).

Il nostro System Data Source Name è "DBSApplet". Occorre quindi configurare questo DSN in ODBC32. Seguono i passi necessari :

PannelloDiControllo

CreateODBC_DNS_01

CreateODBC_DNS_02

CreateODBC_DNS_03

CreateODBC_DNS_04

Le funzioni per la lettura e scrittura dati

La prima operazione da compiere è l'apertura di un connessione con il DBMS. Occorre prima caricare le classi dello specifico gestore di database e successivamente richiedere una connessione con user e password. Nel nostro caso è possibile indicare un "user" ed una "password" a piacere in quanto non abbiamo realizzato alcuna protezione di accesso.

    // database URL
    final String DB_URL = "jdbc:odbc:DBSApplet";   
    // connessione database
    private Connection con;		
    // database statement
    private Statement stmt;

    /**
     * Apre connessione database.
     */
    public void openDBMSConnection() {
        try {
            // classi del fornitore 
	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");	    
    	} catch(java.lang.ClassNotFoundException e) {
            System.out.print(" Error.");
	}

	try {
            // richiesta di connessione - ritorna una istanza di connessione 
            con = DriverManager.getConnection(DB_URL, "User", "PWD");
            // statement per inviare i comandi al database
            stmt = con.createStatement();		
	} catch(SQLException ex) {
	    System.out.println(" Error.");
	}
    }

E' necessario realizzare anche la funzione di chiusura connessione da utilizzare alla chiusura del nostro servizio.


    /**
     * Chiude connessione al database.
     */
    public void closeDBMSConnection() {
        try {
            // libera statement
    	    stmt.close();
            // chiude connessione 
	    con.close();
	} catch(SQLException ex) {
            System.out.println(" Error.");
	}        
    }  

Le funzioni che seguono permettono la gestione della nostra tabella anagrafica e non necessitano di ulteriori spiegazioni essendo scritte in SQL molto semplice. Le operazioni di cancellazione e di modifica sfruttano il codice univoco ed autoincrementante di ogni anagrafica.

Inserimento anagrafica.

    public void insertAnagrafica(String RagSoc, String Indirizzo, String Citta, String Telefono);

Modifica i dati di una anagrafica.

    public void modifyAnagrafica(int Codice, String RagSoc, String Indirizzo, String Citta, String Telefono);

Cancella una anagrafica.

    public void deleteAnagrafica(int Codice);

Ritorna una stringa contenente tutti i record della tabella.

    public String listAnagrafica();

Esegue una ricerca sia per codice che per ragione sociale ritornando una stringa con i risultati. Nel caso in cui si ricerchi per codice verrà ritornata sempre una sola anagrafica dato che il codice è chiave ed autoincrementante.

    public String searchAnagrafica(String riccodice, String ricragsoc);

Conclusioni

Siamo cosi giunti alla fine di questo secondo articolo. Abbiamo fatto una panoramica di JDBC-ODBC scrivendo le funzioni di base per il lato server. Per il download dei sorgenti Java e dell'archivio Access . Per chi volesse provare il codice fornito è possibile utilizzare il JDK 1.1.7 della Sun. Per ogni tipo di domanda o suggerimento relativo all'articolo inviatemi un e-mail all'indirizzo segnato in seguito. Un saluto a tutti.


Stefano Carfagna è Collaboratore di BETA dal 1998; è raggiungibile su Internet tramite la redazione oppure all'indirizzo scxscx@hotmail.com.

Copyright © 1999 Stefano Carfagna, tutti i diritti sono riservati. Questo Articolo di BETA, insieme alla Rivista, è distribuito secondo i termini e le condizioni della Licenza Pubblica Beta, come specificato nel file LPB.


BETA 2199.4: Sommario | Indice del Numero | Redazione | Liste/Forum | Informazioni | Licenza Pubbl. Beta | Mirror ufficiali | Abbonati a BETA | Guida | Cerca | Stampa


Beta.it (http://www.beta.it)email info@beta.it
Barra Sito Beta.it

indice sito | mappa | contattaci | newsletter | pubbl./ad info | abbonamento | informazioni | shopping

Copyright © 1994-1999 BETA, tutti i diritti sono riservati - http://www.beta.it

Sommario Abbonamento a BETA Redazione Liste/Forum Informazioni Indice del Numero Mirror ufficiali Beta Home Page Beta Home Page english Beta News BETA Rivista Articoli BETA Beta Edit, pubblicazioni Beta Logo, premi Beta Lpb, Licenza Pubblica e Articoli Lpb Beta Navigatore Beta Online Beta Library Beta Info Gruppo Beta BETA La rivista ipertestuale tecnica Collegamento al sito Web