L'Ing. Luca Montemagno spiega come Java possa interfacciarsi perfettamente
con i più diffusi RDBMS esisteni grazie all'utilizzo di JDBC, uno standard
di accesso del linguaggio che offre numerose possibilità. L'introduzione ai
driver e alle classi che consentono di astrarre le caratteristiche dei
database per facilitarne l'utilizzo.
Prosegue la serie di articoli dedicata al mondo Java, oggi vediamo l'utilizzo
del linguaggio per la gestione di database, con particolare riferimento a
JDBC. Gli altri articoli inerenti Java sono elencati di seguito:
*- Introduzione all'hosting Java [1]*
- JBoss Hosting: introduzione e caratteristiche principali [2]
Una delle principali preoccupazioni nello sviluppo della maggior parte dei
software è la necessità di curare l’interfacciamento della propria
applicazione con* una base dati*.
In realtà *JAVA* ci offre numerose possibilità per accedere ai database:
potremmo gestire tutto il lavoro internamente (scrivendo il codice
necessario), oppure possiamo utilizzare le classi specifiche per l'accesso a
quest’ultimi. Queste "classi" costituiscono* JDBC: lo standard di accesso
ai database per Java*.
Esistono svariati tipi di database che possono essere utilizzati, ognuno ha i
suoi punti di forza e di debolezza, Java consente di usarli praticamente
tutti mediante l’utilizzo di una serie di classi che fungono da interfaccia
astraendo le reali caratteristiche di ognuno di essi.
Articolo offerto da:
[3]
Hosty.it [4] utilizza strumenti tecnologicamente avanzati e seri
professionisti per la miglior gestione dei vostri siti web.
L’azienda è specializzata nei più importanti tipi di hosting. Assistenza
eccezionale, ottimo prezzo e soluzioni preconfigurate rendono Hosty.it il
partners ideale per tutti coloro che pensano al web come una grande
opportunità di crescita e guadagno. L’azienda offre piani hosting Java,
Ruby on Rails con la possibilità di aggiungere altri servizi, oltre ad una
soluzione ecommerce e un piano rivenditori.
Tralasciano l’esistenza di database basati su una logica ormai deprecata (
ad esempio “Flat File” ), o su logiche relativamente meno utilizzate,
poniamo l’attenzione sui cosidetti *RDBMS*.
Il termine *Relational database management system (RDBMS)* (sistema
relazionale per la gestione di basi di dati) indica un sistema software
progettato per consentire la creazione e manipolazione efficiente di database
(ovvero di collezioni di dati strutturati) solitamente da parte di più
utenti.
A seguire la lista di alcuni tra i più famosi RDBMS:
//
- Cloudscape
- Firebird SQL
- HSQLDB
- Ingres
- MaxDB
- MySQL
- PostgreSQL
- SmallSQL
- SQLite
JAVA per la gestione ottimale di quest’ultimi utilizza *JDBC*.
JDBC, e' un "livello di astrazione" definito da Sun Microsystems che fornisce
ad una applicazione (java ovviamente) un'insieme di classi per l'accesso e
l'utilizzo di database.
In pratica, JDBC ci consente di utilizzare un database semplicemente
invocando la creazione di una classe driver, che ci fornira' una serie di
classi standard. Tramite i metodi di queste classi (metodi che sono
specificati dalle interfacce indicate nello standard JDBC), siamo in grado di
accedere ai nostri dati, leggerli e modificarli. Il tutto senza preoccuparci
piu' di tanto del tipo di database o dello specifico dialetto SQL utilizzato.
Il nostro driver si occupera' di tradurre il tutto e fornirci i risultati.
L'architettura di JDBC, così come quella di ODBC, prevede l’utilizzo di un
“driver manager”, che espone alle applicazioni un insieme di interfacce
standard e si occupa di caricare a “run-time” i driver opportuni per
“pilotare” gli specifici DBMS. Le applicazioni Java utilizzano le "*JDBC
API*" per parlare con il JDBC driver manager, mentre il driver manager usa le
JDBC driver API per parlare con i singoli driver che pilotano i DBMS
specifici. Esiste un driver particolare, il "*JDBC-ODBC Bridge*", che
consente di interfacciarsi con qualsiasi driver ODBC in ambiente Windows.
Per completezza ricordo che ODBC è un'interfaccia nativa alla quale si può
accedere tramite numerosi linguaggi. Nel caso di Microsoft Windows, questa
libreria è una DLL.
In aggiunta al software ODBC, c'è bisogno di *un driver specifico per poter
accedere ad ogni diverso tipo di DBMS*. ODBC permette ai programmi che lo
usano di inviare ai database stringhe SQL senza che ci sia bisogno di
conoscerne le API proprietarie. Genera automaticamente richieste che il
sistema di database utilizzato sia in grado di capire ( in tal modo, i
programmi possono connettersi a diversi tipi di database utilizzando più o
meno lo stesso codice ).