Skip to content

23. Załączniki

Poniżej przedstawiamy instrukcję instalacji narzędzi wykorzystanych w niniejszym dokumencie na komputerach z systemem Windows 7 lub 8. Zrzuty ekranu zazwyczaj przedstawiają 64-bitowe wersje SGBD i zainstalowanych narzędzi. Czytelnik powinien dostosować instrukcję do własnego środowiska.

23.1. Instalacja JDK

W URL [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (październik 2014 r.) znajduje się najnowsza wersja JDK. W dalszej części folder instalacyjny JDK będziemy nazywać <jdk-install>.

 

23.2. Instalacja Mavena

Maven to narzędzie do zarządzania zależnościami projektu Java i nie tylko. Jest ono dostępne (październik 2014 r.) pod numerami URL i [http://maven.apache.org/download.cgi].

 

Pobierz i rozpakuj archiwum. Folder instalacyjny Mavena nazwiemy <maven-install>.

  • W pliku [1] plik [conf / settings.xml] konfiguruje Maven;

Znajdują się w nim następujące wiersze:


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

Domyślna wartość w wierszu 4 może stanowić problem dla niektórych programów korzystających z Mavena, jeśli tak jak u mnie wasz {user.home} zawiera spację w ścieżce (na przykład [C:\Users\Serge Tahé]). W wierszu 7 należy wskazać inny katalog jako lokalne repozytorium Mavena:


  <!-- 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>

W wierszu 7 należy unikać ścieżki zawierającej spacje.

23.3. Instalacja STS (Spring Tool Suite)

Zainstalujemy pakiet narzędziowy SpringSource (październik 2014 r.), czyli środowisko Eclipse wyposażone w liczne wtyczki związane z frameworkiem Spring, a także z preinstalowaną konfiguracją Maven.

  • przejdź na stronę zestawu narzędzi SpringSource (STS) [1], aby pobrać aktualną wersję STS [2A] [2B],
  • pobrany plik jest instalatorem, który tworzy drzewo plików [3A] [3B]. W [4] uruchamia się plik wykonywalny,
  • w pliku [5] wyświetla się okno robocze programu IDE po zamknięciu okna powitalnego. W pliku [6] wyświetla się okno serwerów aplikacji,
  • w [7] wyświetla się okno serwerów. Zarejestrowano jeden serwer. Jest to serwer VMware zgodny z Tomcatem.

Należy wskazać w STS katalog instalacyjny Mavena:

  • w [1-2] konfiguruje się STS;
  • w [3-4] dodaje się nową instalację Mavena;
  • w [5] należy wskazać folder instalacyjny Mavena;
  • w pliku [6] zamykamy kreatora;
  • w [7] ustawia się nową instalację Mavena jako domyślną;
  • w [8-9] sprawdzamy lokalny repozytorium Mavena, czyli folder, w którym będą umieszczane pobrane zależności oraz w którym STS umieści wygenerowane artefakty;

Należy również wybrać JDK (Java Development Kit), aby móc uruchamiać zarówno projekty Eclipse bez Mavena, jak i z Mavenem [1-5].

Wraz z [4] można dodać JDK (Java Development Kit) lub JRE (Java Runtime Environment). Ten ostatni potrafi uruchamiać pliki .class, ale nie potrafi kompilować plików .java w celu ich wygenerowania. JDK potrafi wykonać obie te czynności. Wybierzemy JDK, ponieważ niektóre operacje Maven wymagają JDK.

Aby utworzyć projekt Eclipse, należy postępować w następujący sposób:

  • w [3] nadaj nazwę projektowi;
  • w [4] należy wskazać istniejący, pusty katalog;
  • w [5] wybierz utworzony projekt;
  • w [5-8], utwórz pakiet. Pakiet to folder zawierający kod Java. Dwie klasy mogą nosić tę samą nazwę, jeśli należą do różnych pakietów. W projekcie nie może istnieć dwóch pakietów o tej samej nazwie. Nie można zatem użyć nazwy pakietu, która istnieje w jednej z zależności projektu. Firma jako nazwę pakietu użyje nazwy określającej firmę, projekt i jego różne gałęzie;
  • w [9], nadaj nazwę pakietowi;
  • w [10] – utworzony pakiet;
  • w [11-13] tworzymy klasę w utworzonym pakiecie;
  • w [14], nadaj nazwę klasie (musi być zgodna z normą CamelCase – każde słowo w nazwie powinno zaczynać się wielką literą, a pozostałe litery powinny być małe);
  • w pliku [15] należy zweryfikować pakiet;
  • w polu [16] zaznacz pole wyboru. Służy ono do wygenerowania metody statycznej [main]. Metoda ta sprawia, że klasa staje się wykonywalna, tj. jest pierwszą klasą uruchamianą w projekcie;
  • w [17], utworzoną w ten sposób klasę;

W metodzie [main] należy wpisać następujący kod, który wyświetla tekst na konsoli:


package st.istia;

public class Test01 {

    public static void main(String[] args) {
        System.out.println("test01");
    }

}
  • w klasie [18-20] uruchom klasę. Zostanie wówczas wykonana jej metoda [main];
  • w [21-22] – wynik działania;

Jeśli widok [Console] nie istnieje, należy postępować w następujący sposób: [1-4]:

Podczas importowania projektu Eclipse mogą pojawić się błędy. Może to wynikać z nieprawidłowej konfiguracji projektu. Aby skorygować błąd (jeśli występuje), należy postępować w następujący sposób:

  • w pliku [1] zmień plik [Build Path] projektu;
  • na [2] – projekt jest skonfigurowany do korzystania z pliku JVM 1.5;
  • na [3], usuń tę zależność;
  • w pliku [4] dodaj nową zależność;
  • w [5] dodaj JVM;
  • w [6] wybierz JVM z pozycji;

Po wykonaniu tych czynności zatwierdzamy całość, a następnie przechodzimy do właściwości [Java compiler] projektu [7]:

  • w [8] należy zlecić kompilatorowi akceptację wszystkich cech języka Java aż do wersji 1.7 (lub 1.8) włącznie;
  • w pliku [9] zatwierdza się zmiany;
  • w [10] tak skonfigurowany projekt nie powinien już zawierać błędów;

Ponadto zaimportowany projekt może korzystać z kodowania znaków UTF-8. Aby ustawić to kodowanie w zaimportowanym projekcie [1-4], należy postępować w następujący sposób:

Ponadto warto wyłączyć sprawdzanie pisowni w projekcie, aby komentarze w języku francuskim nie były podkreślane jako błędne. Wykonaj poniższe kroki:

23.4. Instalacja SGBD MySQL5 Community Edition

Wersja SGBD MySQL5 Community Edition będzie dostępna (czerwiec 2015 r.) w wersji URL [https://dev.mysql.com/downloads/mysql/]:

 

Instalacja przebiega w następujący sposób:

  • w przypadku pliku [8] użyto hasła [root]. W tym dokumencie identyfikatory administratora SGBD i MySQL to [root / root];

Po zainstalowaniu MySQL 5 należy wyświetlić stronę zarządzania usługami systemu Windows:

  • [1]: ikona systemu Windows w lewym dolnym rogu;
  • w [8] należy ustawić usługę [MySQL56] na ręczne uruchamianie, aby nie zużywała niepotrzebnie zasobów. Usługę tę będzie można uruchamiać ze strony usług za każdym razem, gdy będzie to konieczne;

23.5. Instalacja EMS MyManager

Witryna [http://www.sqlmanager.net/en/] oferuje bezpłatne klienckie do zarządzania sześcioma typami SGBD:

 

Zaletą jest to, że wszystkie one mają ten sam interfejs do zarządzania plikami SGBD. Jest to idealne rozwiązanie w przypadku tego dokumentu, w którym chcemy zarządzać sześcioma plikami SGBD. Nie ma potrzeby uczenia się obsługi nowego klienta przy zmianie pliku SGBD. Wszystkie z nich można znaleźć pod adresem URL [http://www.sqlmanager.net/download/]. Pobierzemy darmowe wersje o nazwie lite:

 
 

Obecnie (maj 2015 r.) dostępne do pobrania są następujące wersje URL:

MySQL5
IBM DB2
Firebird / Interbase
Oracle
Microsoft SQL Server
PostgreSQL

Po zainstalowaniu np. klienta MyManager z MySQL5 otrzymujemy następującą strukturę katalogów:

  • plik wykonywalny to [2];
  • kroki [3-8] pokazują, jak połączyć [MyManager] z jedną z baz danych MySQL;
  • w pliku [4] hasło brzmi [root];

23.6. Instalacja SGBD Oracle Database Express Edition 11g Release 2

Wersja SGBD Oracle Database Express Edition 11g Release 2 jest dostępna w wersji URL (czerwiec 2015 r.): [http://www.oracle.com/technetwork/database/database-techno logies/express-edition/downloads/index.html]:

 

Instalacja przebiega w następujący sposób:

  • w [6] należy wprowadzić hasło [system]. W niniejszym dokumencie dane logowania administratora Oracle to [system / system];

Instalator instaluje Oracle jako usługę systemu Windows. Zainstalowanych jest kilka usług, które domyślnie uruchamiają się automatycznie. Pierwszą rzeczą, którą należy zrobić, jest przełączenie ich w tryb ręczny:

Należy uruchomić dwie usługi:

  • [OracleXETNSListener], który nasłuchuje na porcie 1521 żądań kierowanych do SGBD;
  • [OracleServiceXE], który jest serwisem SGBD;

Do administrowania Oracle'em użyjemy klienta [OraManager] (punkt 23.5). Aby można było z niego korzystać, należy najpierw zainstalować pakiet [Oracle Database Express Edition 11g Release 2 Client] dostępny w URL (czerwiec 2015 r.): [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html]. Należy pobrać wersję 32-bitową, ponieważ [OraManager] jest klientem 32-bitowym:

 

Instalacja tego pakietu przebiega w następujący sposób:

  • w [3] należy wskazać folder <oracleXE-install>\app\oracle\product\11.2.0\client_1, gdzie <oracleXE-install> to folder, w którym zainstalowano Oracle Express;

Teraz podłączmy klienta [OraManager] do serwera Oracle SGBD:

  • w [2] nazwa grupy jest dowolna;
  • w [4] należy obowiązkowo wpisać XE;
  • w [5] alias można dowolnie wybrać;
  • w [6] identyfikatory to [system / system];

23.7. Instalacja SGBD PostgreSQL 9.4

SGBD PostgreSQL 9.4 jest dostępny w URL (czerwiec 2015 r.): [http://www.enterprisedb.com/products-services-training/pgdownload#windows]:

 

Instalacja przebiega w następujący sposób:

  • w [4] hasło brzmi postgres. W niniejszym dokumencie dane logowania administratora SGBD PostgreSQL to [postgres / postgres];

Instalator instaluje PostgreSQL jako usługę systemu Windows z automatycznym uruchamianiem. Pierwszą rzeczą, którą należy zrobić, jest przełączenie jej w tryb ręczny:

Teraz podłączmy klienta [PgManager] (patrz punkt 23.5) do SGBD PostgreSQL:

  • w [2] identyfikatory to [postgres / postgres];
  • w [3] nawiązuje się połączenie z bazą [postgres];

23.8. Instalacja SGBD DB2 Express

SGBD DB2 Express jest dostępny w URL (czerwiec 2015 r.): [http://www-01.ibm.com/software/data/db2/express-c/download.html]:

 

Instalacja przebiega w następujący sposób:

  • w przypadku [9] hasło brzmi [db2admin]. W tym dokumencie dane logowania administratora SGBD to [db2admin / db2admin];
 

Uwaga: można ulec pokusie, by pominąć ten krok. Nie należy tego robić. Spowoduje to utworzenie folderu, w którym będą przechowywane bazy danych DB2, które zamierzamy utworzyć.

  • utworzono folder [d:\DB2] [1];
  • utworzono bazę danych o nazwie [SAMPLE] w folderze [d:\db2\node0000];

Instalator instaluje DB2 jako usługę systemu Windows z automatycznym uruchamianiem. Pierwszą rzeczą, którą należy zrobić, jest przełączenie jej w tryb ręczny:

Należy to zrobić dla wszystkich powyższych usług [DB2*]. Na potrzeby niniejszego dokumentu należy uruchomić jedynie usługę [DB2 - DB2COPY1].

Teraz podłączmy klienta [Db2Manager] (patrz punkt 23.5) do SGBD i DB2:

  • w [1] należy użyć identyfikatorów [db2admin / db2admin];

23.9. Instalacja SGBD SQL Server 2014 Express

SGBD SQL Server 2014 Express jest dostępny w wersji URL (czerwiec 2015 r.): [http://www.microsoft.com/fr-fr/server-cloud/products/sql-server/]:

 

Instalacja przebiega w następujący sposób:

 
 
 
 
 
  • w pliku [1] należy ustawić dowolne hasło. Zmienimy je później;
 
 

Następnie uruchamiamy usługę serwera SQL:

Po wykonaniu tych czynności uruchamiamy klienta [Microsoft SQL Server Management Studio], który został zainstalowany wraz z SGBD (patrz menu Start):

Klient ten można by wykorzystać do administrowania serwerem SQL. Jednak w celu zachowania spójności z klientami innych serwerów SGBD, użyjemy klienta [MsManager] (patrz punkt 23.5).

  • w [1] należy zapisać nazwę SGBD;
  • w [2] wprowadzono hasło msde. W niniejszym dokumencie dane logowania administratora SGBD to [sa / msde];

Po wykonaniu tych czynności uruchamiamy narzędzie [Gestionaire de configuration SQL Server], które zostało zainstalowane wraz z SGBD (patrz Menu Start):

  • Domyślnie, w [2], komunikacja TCP/IP nie jest włączona. W przypadku tego dokumentu należy ją włączyć w [3];
  • w [4], również na potrzeby tego dokumentu, należy wskazać, że SGBD oczekuje na żądania klientów na porcie 1433. Wartość [Ports TCP dynamiques] musi być pusta;

Po wykonaniu tych czynności uruchamia się klienta [MsManager] (patrz punkt 23.5):

  • w [3] należy wpisać nazwę zapisaną w [1];
  • w [4] identyfikatory to [sa / msde];
 

23.10. Instalacja programu SGBD Firebird

Firebird 2.5.4 o numerze SGBD jest dostępny w wersji URL (czerwiec 2015 r.): [http://www.firebirdsql.org/en/firebird-2-5-4/]:

 

Instalacja przebiega w następujący sposób:

 

Po wykonaniu tych czynności sprawdźmy tryb uruchamiania utworzonej usługi systemu Windows:

Teraz podłączmy klienta [IBManager] (patrz punkt 23.5) do zainstalowanej bazy danych Firebird o nazwie SGBD:

  • w [1] hasło brzmi masterkey;

23.11. Instalacja wtyczki Chrome [Advanced Rest Client]

W niniejszym dokumencie korzystamy z przeglądarki Chrome firmy Google (http://www.google.fr/intl/fr/chrome/browser/). Dodamy do niej rozszerzenie [Advanced Rest Client]. Można to zrobić w następujący sposób:

 
  • aplikacja jest wtedy dostępna do pobrania:
  • aby ją pobrać, należy utworzyć konto Google. Aplikacja [Google Web Store] prosi następnie o potwierdzenie [1]:
  • W [2] dodane rozszerzenie jest dostępne w opcji [Applications] [3]. Opcja ta jest wyświetlana na każdej nowej karcie, którą tworzysz (CTRL-T) w przeglądarce.

23.12. Obsługa jSON w Javie

W sposób tra nsparente dla programisty framework [Spring MVC] wykorzystuje bibliotekę jSON [Jackson]. Aby zilustrować, czym jest jSON (JavaScript Object Notation), przedstawiamy tutaj program, który serializuje obiekty do formatu jSON oraz wykonuje odwrotną operację, deserializując wygenerowane ciągi znaków jSON w celu odtworzenia pierwotnych obiektów.

Biblioteka „Jackson” umożliwia utworzenie:

  • ciągu jSON dla obiektu: new ObjectMapper().writeValueAsString(object);
  • obiektu na podstawie ciągu znaków jSON: new ObjectMapper().readValue(jsonString, Object.class).

Obie metody mogą wywołać wyjątek. Oto przykład.

  

Powyższy projekt to projekt Maven zawierający następujący plik [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>
  • wiersze 12–16: zależność, która wprowadza bibliotekę „Jackson”;

Klasa [Personne] wygląda następująco:


package istia.st.json;

public class Personne {
    // dane
    private String nom;
    private String prenom;
    private int age;

    // producenci
    public Personne() {

    }

    public Personne(String nom, String prénom, int âge) {
        this.nom = nom;
        this.prenom = prénom;
        this.age = âge;
    }

    // podpis
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // metody pobierające i ustawiające
...
}

Klasa [Main] ma następującą postać:


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 {
  // narzędzie do serializacji / deserializacji
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // tworzenie osoby
    Personne paul = new Personne("Denis", "Paul", 40);
    // wyświetlanie jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // instancjonowanie obiektu Personne na podstawie JSON
    Personne p = mapper.readValue(json, Personne.class);
    // wyświetlanie osoby
    System.out.println("Personne=" + p);
    // tabela
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // wyświetlanie JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // słownik
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // wyświetlanie danych JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

Wykonanie tej klasy powoduje wyświetlenie następującego ekranu:

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}}

Z przykładu należy zapamiętać:

  • obiekt [ObjectMapper] niezbędny do transformacji jSON / Object: wiersz 11;
  • transformację [Personne] → jSON: wiersz 17;
  • transformację jSON → [Personne]: wiersz 20;
  • wyjątek [IOException] wywołany przez obie metody: wiersz 13.