Skip to content

23. Appendici

Qui spieghiamo come installare gli strumenti utilizzati in questo documento su macchine Windows 7 o 8. Le schermate mostrano generalmente le versioni a 64 bit del DBMS e degli strumenti installati. Il lettore dovrà adattarsi al proprio ambiente.

23.1. Installazione di un JDK

L'ultimo JDK è disponibile all'URL [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (ottobre 2014). D'ora in poi ci riferiremo alla directory di installazione del JDK come <jdk-install>.

 

23.2. Installazione di Maven

Maven è uno strumento per la gestione delle dipendenze in un progetto Java e non solo. È disponibile (ottobre 2014) all'indirizzo [http://maven.apache.org/download.cgi].

 

Scaricare e decomprimere l'archivio. Ci riferiremo alla directory di installazione di Maven come <maven-install>.

  • In [1], il file [conf/settings.xml] configura Maven;

Contiene le seguenti righe:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
-->

Il valore predefinito alla riga 4 potrebbe causare problemi ad alcuni software che utilizzano Maven se, come nel mio caso, il percorso {user.home} contiene uno spazio (ad esempio, [C:\Users\Serge Tahé]). Specificheremo (riga 7) una cartella diversa per il repository Maven locale:


  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>

Alla riga 7, evitare di utilizzare un percorso che contenga spazi.

23.3. Installazione di STS (Spring Tool Suite)

Installeremo SpringSource Tool Suite [http://www.springsource.com/developer/sts] (ottobre 2014), un ambiente Eclipse preconfigurato con numerosi plugin relativi al framework Spring e con una configurazione Maven preinstallata.

  • Vai al sito web di SpringSource Tool Suite (STS) [1] per scaricare la versione attuale di STS [2A] [2B].
  • Il file scaricato è un programma di installazione che crea la struttura di directory [3A] [3B]. In [4], avviamo l'eseguibile,
  • in [5], la finestra dell’area di lavoro dell’IDE dopo aver chiuso la finestra di benvenuto. In [6], viene visualizzata la finestra dei server delle applicazioni,
  • in [7], la finestra dei server. È stato registrato un server. Si tratta di un server VMware compatibile con Tomcat.

È necessario specificare la directory di installazione di Maven in STS:

  • in [1-2], configurare STS;
  • in [3-4], aggiungere una nuova installazione di Maven;
  • in [5], specificare la directory di installazione di Maven;
  • in [6], completare la procedura guidata;
  • in [7], impostare la nuova installazione di Maven come predefinita;
  • In [8-9], verificare il repository Maven locale, ovvero la cartella in cui verranno memorizzate le dipendenze scaricate e in cui STS inserirà gli artefatti compilati;

È inoltre necessario selezionare un JDK (Java Development Kit) per eseguire sia i progetti Eclipse con Maven che quelli senza [1-5].

Con [4], è possibile aggiungere JDK (Java Development Kit) o JRE (Java Runtime Environment). Questi ultimi possono eseguire file .class ma non possono compilare file .java per generarli. Il JDK può fare entrambe le cose. È consigliabile scegliere un JDK perché alcune operazioni di Maven lo richiedono.

Per creare un progetto Eclipse, procedere come segue:

  • In [3], assegnare un nome al progetto;
  • in [4], seleziona una cartella esistente e vuota;
  • in [5], il progetto viene creato;
  • in [5-8], creare un pacchetto. Un pacchetto è una cartella che contiene codice Java. Due classi possono avere lo stesso nome se appartengono a pacchetti diversi. All'interno di un progetto, non possono esserci due pacchetti con lo stesso nome. Pertanto, non è possibile utilizzare un nome di pacchetto già esistente in una delle dipendenze del progetto. Un'azienda utilizzerà un nome di pacchetto che specifichi l'azienda, il progetto e le sue varie filiali;
  • in [9], assegnare un nome al pacchetto;
  • in [10], il pacchetto creato;
  • in [11-13], creare una classe all'interno del pacchetto appena creato;
  • in [14], assegnare un nome alla classe (deve seguire la convenzione CamelCase: ogni parola del nome deve iniziare con una lettera maiuscola seguita da lettere minuscole);
  • in [15], verificare il pacchetto;
  • in [16], selezionare la casella. Ciò richiede la generazione del metodo statico [main]. Questo metodo rende una classe eseguibile, ovvero la prima classe da eseguire in un progetto;
  • in [17], la classe così creata;

Digita il seguente codice nel metodo [main], che visualizza del testo sulla console:


package st.istia;
 
public class Test01 {
 
    public static void main(String[] args) {
        System.out.println("test01");
    }
 
}
  • In [18-20], esegui la classe. Verrà quindi eseguito il suo metodo [main];
  • in [21-22], il risultato dell'applicazione;

Se la vista [Console] non è presente, procedere come segue [1-4]:

Quando si importa un progetto Eclipse, è possibile che contenga degli errori. Ciò potrebbe essere dovuto a una configurazione errata del progetto. Per correggere l'errore (se presente), procedere come segue:

  • In [1], modificare il [Build Path] del progetto;
  • In [2], il progetto è configurato per utilizzare una JVM 1.5;
  • In [3], rimuovere questa dipendenza;
  • in [4], aggiungere una nuova dipendenza;
  • in [5], aggiungere una JVM;
  • In [6], selezionare la JVM per la macchina;

Una volta fatto ciò, verificare che tutto sia corretto e poi andare alla proprietà [Compilatore Java] del progetto [7]:

  • in [8], indicare al compilatore di accettare tutte le funzionalità del linguaggio Java fino alla versione 1.7 (o 1.8) inclusa;
  • In [9], convalidiamo;
  • In [10], il progetto riconfigurato non dovrebbe più contenere errori;

Inoltre, il progetto importato potrebbe utilizzare la codifica dei caratteri UTF-8. Seguire questi passaggi per impostare questa codifica nel progetto importato [1-4]:

Inoltre, potrebbe essere utile disattivare il controllo ortografico nel progetto per evitare che i commenti in francese vengano sottolineati come errati. Segui i passaggi [1-4] riportati di seguito:

23.4. Installazione del DBMS MySQL5 Community Edition

Il DBMS MySQL5 Community Edition è disponibile (a giugno 2015) all'indirizzo [https://dev.mysql.com/downloads/mysql/]:

 

L'installazione procede come segue:

  • In [8] è stata utilizzata la password [root]. In questo documento, le credenziali dell'amministratore del DBMS MySQL sono [root / root];

Una volta installato MySQL 5, aprire la pagina di gestione dei servizi di Windows:

  • [1]: icona di Windows nell'angolo in basso a sinistra;
  • In [8], imposta l'avvio del servizio [MySQL56] su manuale in modo che non consumi risorse inutilmente. Potrai avviarlo dalla pagina Servizi ogni volta che ne avrai bisogno;

23.5. Installazione di EMS MyManager

Il sito web [http://www.sqlmanager.net/en/] offre client gratuiti per la gestione di sei tipi di DBMS:

 

Il vantaggio è che dispongono tutti della stessa interfaccia per la gestione dei DBMS. Ciò è ideale per questo documento, in cui vogliamo gestire tutti e sei i DBMS. Non è necessario imparare a usare un nuovo client quando si passa da un DBMS all’altro. Sono tutti disponibili all’indirizzo [http://www.sqlmanager.net/download/]. Scaricate le versioni “lite” gratuite:

 
 

Gli URL per il download sono attualmente (maggio 2015) i seguenti:

MySQL5
IBM DB2
Firebird / Interbase
Oracle
Microsoft SQL Server
PostgreSQL

Quando si installa, ad esempio, il client MySQL5 MyManager, si ottiene la seguente struttura di directory:

  • il file eseguibile si trova in [2];
  • i passaggi [3-8] mostrano come collegare [MyManager] a uno dei database MySQL;
  • in [4], la password è [root];

23.6. Installazione di Oracle Database Express Edition 11g Release 2

Il DBMS Oracle Database Express Edition 11g Release 2 è disponibile al seguente URL (giugno 2015): [http://www.oracle.com/technetwork/database/database-techno logies/express-edition/downloads/index.html]:

 

L'installazione procede come segue:

  • In [6], inserire la password [system]. In questo documento, le credenziali dell'amministratore Oracle sono [system / system];

L'installazione configura Oracle come servizio di Windows. Vengono installati diversi servizi, tutti impostati per l'avvio automatico per impostazione predefinita. Il primo passo consiste nel passare alla modalità manuale:

È necessario avviare due servizi:

  • [OracleXETNSListener], che ascolta sulla porta 1521 le richieste inviate al DBMS;
  • [OracleServiceXE], che è il DBMS;

Per amministrare Oracle, useremo il client [OraManager] (Sezione 23.5). Per utilizzarlo, è necessario prima installare la suite [Oracle Database Express Edition 11g Release 2 Client] disponibile al seguente URL (giugno 2015): [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html]. È necessario scaricare la versione a 32 bit poiché [OraManager] è un client a 32 bit:

 

Installare questa suite come segue:

  • In [3], specificare la cartella <oracleXE-install>\app\oracle\product\11.2.0\client_1, dove <oracleXE-install> è la cartella in cui è stato installato Oracle Express;

Ora, colleghiamo il client [OraManager] al DBMS Oracle:

  • In [2], il nome del gruppo è a vostra discrezione;
  • In [4], devi inserire XE;
  • In [5], l'alias può essere qualsiasi cosa;
  • In [6], le credenziali sono [system / system];

23.7. Installazione del DBMS PostgreSQL 9.4

Il DBMS PostgreSQL 9.4 è disponibile al seguente URL (giugno 2015): [http://www.enterprisedb.com/products-services-training/pgdownload#windows]:

 

L'installazione procede come segue:

  • In [4], la password è postgres. In questo documento, le credenziali dell'amministratore del DBMS PostgreSQL sono [postgres / postgres];

L'installazione configura PostgreSQL come servizio di Windows con avvio automatico. La prima cosa da fare è impostarlo in modalità manuale:

Ora colleghiamo il client [PgManager] (vedere la sezione 23.5) al sistema di gestione del database PostgreSQL:

  • In [2], le credenziali sono [postgres / postgres];
  • in [3], ci colleghiamo al database [postgres];

23.8. Installazione del DBMS DB2 Express

Il DBMS DB2 Express è disponibile al seguente URL (giugno 2015): [http://www-01.ibm.com/software/data/db2/express-c/download.html]:

 

L'installazione procede come segue:

  • In [9], la password è [db2admin]. In questo documento, le credenziali dell'amministratore del DBMS sono [db2admin / db2admin];
 

Nota: potresti essere tentato di saltare questo passaggio. Non farlo. Questo comando creerà la cartella in cui verranno archiviati i database DB2 che creeremo.

  • È stata creata una cartella [d:\DB2] [1];
  • il database [SAMPLE] è stato creato nella cartella [d:\db2\node0000];

L'installazione configura DB2 come servizio Windows con avvio automatico. Il primo passo consiste nel passare alla modalità manuale:

Eseguire questa operazione per tutti i servizi [DB2*] elencati sopra. Ai fini del presente documento, è necessario avviare solo il servizio [DB2 - DB2COPY1].

Ora colleghiamo il client [Db2Manager] (vedere la sezione 23.5) al DBMS DB2:

  • In [1], utilizzare le credenziali [db2admin / db2admin];

23.9. Installazione del DBMS SQL Server 2014 Express

Il DBMS SQL Server 2014 Express è disponibile al seguente URL (giugno 2015): [http://www.microsoft.com/fr-fr/server-cloud/products/sql-server/]:

 

L'installazione procede come segue:

 
 
 
 
 
  • In [1], inserisci una password qualsiasi. La cambieremo in seguito;
 
 

Successivamente, avviare il servizio SQL Server:

Una volta fatto ciò, avvia il client [Microsoft SQL Server Management Studio], che è stato installato insieme al DBMS (vedi menu Start):

Potremmo utilizzare questo client per amministrare SQL Server. Tuttavia, per coerenza con i client di altri DBMS, utilizzeremo il client [MsManager] (vedere la Sezione 23.5).

  • In [1], si noti il nome del DBMS;
  • in [2], abbiamo inserito la password msde. In questo documento, le credenziali dell'amministratore del DBMS sono [sa / msde];

Una volta fatto ciò, avviare lo strumento [SQL Server Configuration Manager], installato insieme al DBMS (vedere il menu Start):

  • Per impostazione predefinita, in [2], la comunicazione TCP/IP non è abilitata. Ai fini di questo documento, è necessario abilitarla [3];
  • In [4], sempre ai fini del presente documento, è necessario specificare che il DBMS attenda le richieste dei client sulla porta 1433. Il valore per [Dynamic TCP Ports] deve essere lasciato vuoto;

Una volta fatto ciò, avviare il client [MsManager] (vedere la sezione 23.5):

  • in [3], inserisci il nome annotato in [1];
  • in [4], le credenziali sono [sa / msde];
 

23.10. Installazione del DBMS Firebird

Il DBMS Firebird 2.5.4 è disponibile al seguente URL (giugno 2015): [http://www.firebirdsql.org/en/firebird-2-5-4/]:

 

L'installazione procede come segue:

 

Una volta fatto questo, controlliamo la modalità di avvio del servizio Windows creato:

Ora colleghiamo il client [IBManager] (vedere la sezione 23.5) al DBMS Firebird installato:

  • in [1], la password è masterkey;

23.11. Installazione dell'estensione [Advanced Rest Client] per Chrome

In questo documento utilizziamo il browser Chrome di Google (http://www.google.fr/intl/fr/chrome/browser/). Aggiungeremo l'estensione [Advanced Rest Client]. Ecco come procedere:

 
  • L'app è quindi disponibile per il download:
  • per scaricarla, dovrai creare un account Google. Il [Google Web Store] ti chiederà quindi una conferma [1]:
  • in [2], l'estensione aggiunta è disponibile nell'opzione [App] [3]. Questa opzione appare su ogni nuova scheda che crei (CTRL-T) nel browser.

23.12. Gestione JSON in Java

In modo trasparente per lo sviluppatore, il framework [Spring MVC] utilizza la libreria JSON [Jackson]. Per illustrare cos'è il JSON (JavaScript Object Notation), presentiamo qui un programma che serializza gli oggetti in JSON ed esegue l'operazione inversa deserializzando le stringhe JSON generate per ricreare gli oggetti originali.

La libreria 'Jackson' consente di costruire:

  • la stringa JSON di un oggetto: new ObjectMapper().writeValueAsString(object);
  • un oggetto da una stringa JSON: new ObjectMapper().readValue(jsonString, Object.class).

Entrambi i metodi possono generare un'eccezione. Ecco un esempio.

  

Il progetto sopra riportato è un progetto Maven con il seguente file [pom.xml];


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>istia.st.pam</groupId>
  <artifactId>json</artifactId>
  <version>1.0-SNAPSHOT</version>
 
  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.3.3</version>
    </dependency>
  </dependencies>
</project>
  • righe 12–16: la dipendenza che include la libreria 'Jackson';

La classe [Person] è la seguente:


package istia.st.json;
 
public class Personne {
    // data
    private String nom;
    private String prenom;
    private int age;
 
    // manufacturers
    public Personne() {
 
    }
 
    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }
 
    // signature
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }
 
    // getters and setters
...
}

La classe [Main] è la seguente:


package istia.st.json;
 
import com.fasterxml.jackson.databind.ObjectMapper;
 
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
 
public class Main {
  // the serialization / deserialization tool
  static ObjectMapper mapper = new ObjectMapper();
 
  public static void main(String[] args) throws IOException {
    // creation of a person
    Personne paul = new Personne("Denis", "Paul", 40);
    // display jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // person instantiation from Json
    Personne p = mapper.readValue(json, Personne.class);
    // person display
    System.out.println("Personne=" + p);
    // a picture
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // json display
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // dictionary
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // json display
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

L'esecuzione di questa classe produce il seguente output sullo schermo:

1
2
3
4
Json={"nom":"Denis","prenom":"Paul","age":40}
Personne=Personne[Denis, Paul, 40]
Json personnes=[{"nom":"Denis","prenom":"Paul","age":40},{"nom":"Radot","prenom":"Virginie","age":20}]
Json hpersonnes={"2":{"nom":"Radot","prenom":"Virginie","age":20},"1":{"nom":"Denis","prenom":"Paul","age":40}}

Punti chiave dell'esempio:

  • l'oggetto [ObjectMapper] necessario per le trasformazioni JSON/Object: riga 11;
  • la trasformazione [Person] --> JSON: riga 17;
  • la trasformazione da JSON a [Person]: riga 20;
  • l'eccezione [IOException] generata da entrambi i metodi: riga 13.