22. 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 dei DBMS e degli strumenti installati. Il lettore dovrebbe adattarle al proprio ambiente.
22.1. Installazione di un JDK
L'ultima versione del JDK è disponibile all'indirizzo [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>.
![]() |
22.2. Installazione di Maven
Maven è uno strumento per la gestione delle dipendenze in un progetto Java e non solo. È disponibile (a ottobre 2014) all'indirizzo [http://maven.apache.org/download.cgi].
![]() |
Scaricare e decomprimere l'archivio. Ci riferiremo alla cartella 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.
22.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.
![]() |
- Visita il 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. È 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 installazione predefinita;
![]() |
- In [8-9], controlla il repository Maven locale, la cartella in cui verranno memorizzate le dipendenze scaricate e dove STS collocherà 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). Il JRE può eseguire file .class ma non può 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;
- nei passaggi [5-8], si crea 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 i suoi vari rami;
![]() |
- in [9], assegnare un nome al pacchetto;
- in [10], il pacchetto creato;
![]() |
- in [11-13], creare una classe all'interno del pacchetto 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. In questo modo si 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ò, salvare le modifiche e poi andare alla proprietà [Compilatore Java] del progetto [7]:
![]() |
- in [8], imposta il compilatore in modo che accetti tutte le funzionalità del linguaggio Java fino alla versione 1.7 (o 1.8) inclusa;
- In [9], clicca su OK;
- In [10], il progetto riconfigurato non dovrebbe più contenere errori;
Inoltre, il progetto importato può 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:
![]() |
22.4. Installazione dell'IDE NetBeans
NetBeans è disponibile all'indirizzo [http://netbeans.org/downloads/].
![]() |
È possibile scaricare la versione Java SE (Standard Edition) dal link riportato sopra.
22.5. Installazione del plugin [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:
- Accedere al [Google Web Store] (https://chrome.google.com/webstore) utilizzando il browser Chrome;
- Cerca l'app [Advanced Rest Client]:
![]() |
- L'app è quindi disponibile per il download:
![]() |
- Per scaricarla, dovrai creare un account Google. Il [Google Web Store] ti chiederà quindi di confermare [1]:
![]() |
- In [2], l'estensione aggiunta è disponibile nell'opzione [App] [3]. Questa opzione appare su ogni nuova scheda che crei (CTRL-T) nel browser.
22.6. 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 IOException. 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 importa 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:
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.
22.7. Installazione di [WampServer]
[WampServer] è una suite di software per lo sviluppo in PHP / MySQL / Apache su un computer Windows. Lo useremo esclusivamente per il DBMS MySQL.
![]() |
- Sul sito web di [WampServer] [1], scegli la versione appropriata [2],
- il file eseguibile scaricato è un programma di installazione. Durante l'installazione vengono richieste varie informazioni. Non riguardano MySQL, quindi possono essere ignorate. Al termine dell'installazione appare la finestra [3]. Avvia [WampServer],
![]() |
- in [4], l'icona [WampServer] appare nella barra delle applicazioni in basso a destra dello schermo [4];
- quando si fa clic su di essa, appare il menu [5]. Consente di gestire il server Apache e il DBMS MySQL. Per gestire quest'ultimo, utilizzare l'opzione [PhpMyAdmin],
- che apre la finestra mostrata di seguito,

Forniremo alcuni dettagli sull'uso di [PhpMyAdmin]. Nella sezione 6.4.2 mostriamo come utilizzarlo per creare un database da uno script SQL.






























