economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

Database e Java

Lo standard SQLJ (seconda parte)

A cura di Andrea Silvestri

Pubblicato il 15/07/2001

Prosegue la descrizione dello standard sqlj, focalizzando l'attenzione sulla connessione al database.

Tutte le istruzioni #sql utilizzano, salvo diversa specificazione, una connessione (contesto) di default (Default Connection Context), che permette appunto di definire il database al quale connettersi.
Vediamo le istruzioni che inizializzano tale contesto, utilizzando il driver jdbc:

Solite definizioni:
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String pass = "tiger";

Registrazione del driver jdbc:
DriverManager.registerDriver(new oracle.jdbc.driver.oracleDriver());

Impostazione del contesto di default:
DefaultContext.setDefaultContext(new DefaultContext(url, user, pass, false));

L'ultimo parametro definisce a false l'autocommit.
A questo punto tutte le istruzioni #sql {....} utilizzeranno questa connessione.
E' possibile definire altri contesti (Named Connection Context), oltre quello di default, seguendo i seguenti passi:

Dichiarazione di una classe che implementi la ConnectionContext:
#sql context MiaConn

Istanziazione ed inizializzazione della classe:
MiaConn miac = new MiaConn(url1,user1,pass1,false);

A questo punto e' stato dichiarato ed istanziato un nuovo contesto, che puo' essere utilizzato, in modo esplicito, nelle istruzioni sqlj:

#sql [miac] {....}

E' ovviamente possibile definire piu' istruzioni sqlj che utilizzano contesti differenti, in modo da eseguire query sullo stesso database con utenti differenti o su database diversi.
Concludo parlando degli iteratori, che permettono di memorizzare il risultato di una query che estrae piu' di un record.
Consideriamo la tabella impiegati e supponiamo di voler estrarre nome,cognome e sede di tutti gli impiegati, dovremo utilizzare quindi un iteratore in quanto non e' possibile usare la select into.
I passi per definire ed utilizzare un iteratore sono:

Definizione di una classe iteratore:
#sql iterator ImpItera (String nome, String cogn, int sede);

Dichiarazione di una variabile della classe iteratore:
ImpItera impieg;

Esecuzione della query di estrazione dei record:
#sql impieg = {SELECT nome,cognome,sede FROM impiegati};

Per ora e' tutto, nel prossimo intervento vedremo come leggere i record memorizzati nell'iteratore.

I link correlati all'argomento

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS