Avanti Indietro Indice

6. Come predisporre il supporto per JDBC

Ci sono diversi database che funzionano su Linux che supportano anche un'interfaccia JDBC. Tra questi sono inclusi:

Se si volesse provare solo un DBMS, suggerirei inizialmente di provare PostgreSQL, principalmente perché è presente nella maggior parte delle maggiori distribuzioni Linux ed è probabile che sia già installato, e forse funzionante, nel sistema in uso.

6.1 IBM DB2

Da scrivere.

Vedere http://www-4.ibm.com/software/data/db2/linux/ per maggiori informazioni.

6.2 MiniSQL

Da scrivere.

Vedere http://www.hughes.com.au/ per maggiori informazioni.

6.3 MySQL

Da scrivere.

See http://www.mysql.org/ per maggiori informazioni.

6.4 Oracle

Da scrivere.

Vedere http://platforms.oracle.com/linux/

6.5 PostgreSQL

Generalità

PostgreSQL è un sofisticato DBMS relazionale ad oggetti, ammette quasi tutti i costrutti SQL, inclusi subselect, transazioni, tipi e funzioni definite dall'utente. È il più avanzato database open-source disponibile. È anche disponibile il supporto commerciale di PostgreSQL, Inc. La versione attuale è la 6.5.3 ed è disponibile da uno qualsiasi dei tanti siti mirror o su CD (dal sito web di PostgreSQL).

PostgreSQL potrebbe essere già contenuto nella distribuzione Linux in uso per via della sua licenza open source.

Download ed installazione

Piuttosto che scaricare da PostgreSQL, suggerirei inizialmente di provare il PostgreSQL che molto probabilmente è fornito con la distribuzione Linux in uso.

In alternativa, PostgreSQL può essere ottenuto da http://www.postgresql.org.

Per verificare che PostgreSQL sia installato sul computer in uso digitare:

rpm -qa | grep postgresql

o

which postmaster
which psql

Per usare Java con PostgreSQL \ necessario che i pacchetti postgresql, postgresql-server e postgresql-java siano installati.

Accertarsi che PostgreSQL sia in esecuzione. Digitare:

ps -f -u postgres

Si dovrebbe vedere postmaster, il demone di PostgreSQL, attivo.

Se postmaster non fosse attivo, ci sarà probabilmente uno script Sys V Init che può essere usato per avviarlo. In molte distribuzioni è localizzato in /etc/rc.d/init.d. Per lanciare PostgreSQL, digitare:

cd /etc/rc.d/init.d
./postgresql start

Si può usare il comando "ps" di cui sopra per avere una conferma che PostgreSQL è in esecuzione.

Nota: per usare il JDBC, PostgreSQL necessita di essere lanciato con il parametro '-i' che indica l'uso di connessioni TCP/IP piuttosto che solamente socket di dominio UNIX. Verificare che postmaster sia stato lanciato con il parametro '-i'.

Creare un database di test digitando:

su - postgres
createdb javatest

Non si dovrebbe vedere alcun messaggio di errore.

Creare una tabella di test con una riga di test. Prima, accedere allo strumento interattivo PostgreSQL e collegarsi al database javatest appena creato digitando (come utente postgres):

psql javatest

Si dovrebbe vedere confermato il fatto di essere connessi al database: javatest.

Poi, creare la tabella di test digitando (all'interno di psql):

create table test (col1 varchar(255));

Si dovrebbe vedere il messaggio di conferma del comando "CREATE".

Quindi, inserire una riga digitando (all'interno di psql):

insert into test (col1) values ('Hello, from PostgreSQL!');

Si dovrebbe vedere il messaggio di conferma del comando "INSERT".

Finalmente, verificare che la riga sia presente digitando (all'interno di psql):

select col1 from test;  

Si dovrebbe vedere la riga appena creata.

Si può uscire da psql digitando "\q".

Per maggiore assistenza nel lavoro con PostgreSQL, suggerirei di leggere a fondo il documento Database-SQL-RDBMS HOW-TO per Linux (PostgreSQL Object Relational Database System) all'indirizzo: http://metalab.unc.edu/mdw/HOWTO/PostgreSQL-HOWTO.html.

È necessario aggiungere il JAR appropriato nel CLASSPATH. I JAR di PostgreSQL vengono forniti con il pacchetto postgresql-jdbc.

export CLASSPATH=$CLASSPATH:/usr/lib/pgsql/jdbc6.5-1.2.jar

Si potrebbe aver bisogno di sostituire il percorso a seconda di dove è stato installato PostgreSQL sul sistema in uso.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi PostgreSQL. Creare il seguente programma.

import java.sql.*;

class PostgreSQLTest {
  public static void main (String[] args) {
    try {
      Driver driver = (Driver)
        Class.forName("postgresql.Driver").newInstance();
      DriverManager.registerDriver(driver);

      String     url = "jdbc:postgresql:javatest"; 
      Connection con = DriverManager.getConnection(url, "postgres", ""); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

Compilare il programma con il compilatore Java.

javac PostgreSQLTest.java  

Se il compilatore dovesse produrre errori, controllare la sintassi e verificare il PATH e la CLASSPATH.

Eseguire il programma con la JVM.

java PostgreSQLTest  

Se la JVM dovesse produrre errori, verificare il PATH e la CLASSPATH.

Si dovrebbe vedere l'output:

Hello, from PostgreSQL!  

Congratulazioni, si è installato, configurato e provato un ambiente per l'interfaccia JDBC verso PostgreSQL.

Maggiori informazioni

Per maggiori informazioni, suggerirei di esaminare a fondo il sito web di PostgreSQL all'indirizzo

http://www.postgresql.org/.

6.6 Sybase

Generalità

Sybase Adaptive Server Enterprise è un RDBMS commerciale che è disponibile per il sistema operativo Linux. Per quanto Sybase abbia recentemente rilasciato la versione 12.0, la versione disponibile per Linux è la 11.9.2.

Secondo il sito web di Sybase, "Con il port di ASE su Linux, Sybase ha dato alla comunità di sviluppo di Linux il primo motore di database ad alta scalabilità ad alte prestazioni per la piattaforma. Il pacchetto include le caratteristiche standard dell'Adaptive Server Enterprise e di tutti i componenti di connettività relativi. La versione 11.9.2 è offerta per sviluppo LIBERO".

Download

Sybase ASE può essere ottenuto da http://www.sybase.com/products/databaseservers/linux/linux1192_reg.html.

Per poter effettuare il download è necessario registrarsi presso il sito web di Sybase ed accettare i termini della licenza online.

Il driver JDBC di Sybase JDBC può essere ottenuto da http://www.sybase.com/products/internet/jconnect/.

Selezionare download jConnect 4.2/5.2.

Se si ha accesso ad un server Sybase in rete, è sufficiente scaricare ed installare il solo driver JDBC.

Installazione

L'installazione di Sybase va oltre lo scopo di questo HOWTO. Questo HOWTO assume che Sybase sia stato installato e configurato correttamente e che si acceda a Sybase utilizzando isql.

Accedere ad isql come sa e creare un utente di test ed un database di test digitando:

create database javatest  
go 
sp_addlogin javatest, javatest, javatest 
go 
use javatest 
go 
sp_dbowner javatest 
go 

Non si dovrebbero vedere errori.

Creare una tabella di test con una riga di test. Prima, accedere ad isql con l'utente di test javatest e digitare:

create table test (col1 varchar(255))  
go 

Non si dovrebbe vedere alcun messaggio di errore.

Poi, inserire una riga digitando:

insert into test (col1) values ('Hello, from Sybase!')  
go 

Non si dovrebbe vedere alcun messaggio di errore.

Alla fine, verificare che la riga sia presente digitando:

select col1 from test  
go 

Si dovrebbe vedere la riga appena creata.

Si può uscire da isql digitando "exit".

Per maggiori informazioni su come lavorare con Sybase, esaminare la documentazione che può essere scaricata con Sybase.

Potrebbe essere necessario aggiungere gli appropriati JAR al CLASSPATH.

export CLASSPATH=$CLASSPATH:/usr/local/sybase/jConnect-5_2/classes/jconn2.jar  

Potrebbe essere necessario sostituire il percorso in base a dove si è installato jConnect.

Verifica dell'installazione

Si è ora in grado di compilare ed eseguire una semplice applicazione JDBC che usi PostgreSQL. Creare il seguente programma.

import java.sql.*;  
 
class SybaseTest { 
  public static void main (String[] args) { 
    try { 
      Driver driver = (Driver) 
        Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); 
      DriverManager.registerDriver(driver); 
 
      String     host = "127.0.0.1"; 
      String     port = "4100"; 
 
      String     url = "jdbc:sybase:Tds:" + host + ":" + port; 
      Connection con = DriverManager.getConnection(url, "javatest", "javatest"); 
      Statement  stm = con.createStatement(); 
 
      stm.setQueryTimeout(10); 
      ResultSet  rs  = stm.executeQuery("select col1 from test"); 
 
      rs.next(); 
 
      System.out.println(rs.getString(1)); 
 
    } catch (SQLException e) { 
 
      System.out.println("Exception!"); 
      System.out.println(e.toString()); 
  } 
} 

Sarà necessario sostituire l'host e il numero della porta del server Sybase in modo appropriato. Vedere il contenuto di $SYBASE/interfaces e $DSQUERY per quali valori usare per l'host ed il numero di porta.

Compilare il programma con il compilatore Java.

javac SybaseTest.java  

Se il compilatore dovesse produrre errori, controllare la sintassi e verificare il PATH e la CLASSPATH.

Eseguire il programma con la JVM.

java SybaseTest  

Se la JVM dovesse produrre errori, verificare il PATH e la CLASSPATH.

Si dovrebbe vedere il seguente output:

Hello, from Sybase!  

Congratulazione, si è installato, configurato e provato un ambiente per l'interfaccia JDBC verso Sybase.

Maggiori informazioni

Per maggiori informazioni, suggerirei di guardare a fondo il sito web dedicato a jConnect di Sybase all'indirizzo http://www.sybase.com/products/internet/jconnect/.


Avanti Indietro Indice