Stored procedure e Trigger da Java

11 febbraio 2008

Lo sviluppo di applicazioni web (in ambiente Java, come in altri ambienti di sviluppo) vi avrà sicuramente portato a sviluppare logiche applicative che in qualche punto avevano necessità di salvare i dati su uno strato di persistenza. Il più delle volte lo strato di persistenza è un DBMS a cui vi siete collegati mediante driver, nel caso di Java, driver JDBC.

Utilizzare le basi di dati per accedere ai servizi di persistenza è, grazie alla presenza di questi driver, un’operazione piuttosto semplice. La complessità, semmai, risiede nelle operazioni di debug, in quanto l’errore può dipendere da un’infinita serie di casi legati al fatto che Java è un linguaggio di programmazione e SQL è un’altro linguaggio, utilizzato all’interno del precedente.

In alcuni casi, la programmazione lato database può semplificare di molto la vita dello sviluppatore, consentendogli di liberarsi dei tipici problemi legati all’integrazione, oltre che a fornire ottimizzazioni di performance spesso anche notevoli.

Le stored procedures, in particolare, e i triggers, permettono di gestire delle funzioni lato database (le prime) o degli eventi (i secondi) permettendo quindi al livello di logica di business di liberarsi di alcuni gravosi compiti. Come potete approfondire anche nelle guide di HTML (vi suggerisco la lettura della guida MySQL, database che useremo), queste funzioni consentono di creare uno strato di programmazione direttamente nel DBMS, che è standard e quindi potrà essere facilmente utilizzato da tutti i linguaggi di programmazione. Noi chiaramente ci concentreremo su Java e su come attraverso questo linguaggio sia possibile utilizzare questo livello di programmazione.

Esempio concreto

Il nostro esempio ci farà vedere direttamente come creare delle stored procedures e dei trigger, e come utilizzarli. Si tratta di un sistema web il cui scopo è quello di registrare l’inserimento di utenti sul database e dei relativi acquisti. Inoltre è possibile cancellare gli acquisti. La web application viene utilizzata da un sistema terzo, e non da interfacce grafiche: il nostro sistema è quindi un servizio di relay utilizzato da altri. Al momento della cancellazione, vogliamo che (per una questione statistica, un audit o qualsiasi cosa di simile vi venga in mente) vengano registrati gli acquisti superiori ad un certo importo, in modo da mantenerne traccia (ad esempio per sapere quanti acquisti superiori a 100 euro falliscono ed in che periodo).

Dal punto di vista della programmazione Java avremo una servlet che gestisce il servizio ed una classe che si occupa di gestire la comunicazione con lo strato di persistenza (quindi con le stored procedures).

Logica di persistenza

Iniziamo la discussione proprio con il lato di programmazione sul database. Per l’esempio utilizzeremo MySQL, che dalla versione 5.0 ha introdotto queste nuove caratteristiche di programmazione, ma potete usare qualunque database. È importante dire che la sintassi potrebbe variare da database a database.

Se vuoi aggiornamenti su Stored procedure e Trigger da Java inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Stored procedure e Trigger da Java

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy