Skip to content

23. Додатки

Тут ми розповімо, як встановити інструменти, що використовуються в цьому документі, на комп’ютерах із Windows 7 або 8. На знімках екрана, як правило, показано 64-бітні версії SGBD та встановлених інструментів. Читач повинен адаптувати інструкції до свого середовища.

23.1. Встановлення JDK

У URL [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (жовтень 2014 р.) міститься найновіша версія JDK. Надалі папку з інсталяцією JDK будемо називати <jdk-install>.

 

23.2. Встановлення Maven

Maven — це інструмент для управління залежностями Java-проекту та багато іншого. Станом на жовтень 2014 року він доступний у URL та [http://maven.apache.org/download.cgi].

 

Завантажте та розпакуйте архів. Папку, в якій буде встановлено Maven, ми назвемо <maven-install>.

  • У файлі [1] файл [conf / settings.xml] налаштовує Maven;

У ньому містяться такі рядки:


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

Значення за замовчуванням у рядку 4 може спричинити проблеми для деяких програм, що використовують Maven, якщо, як у моєму випадку, ваш {user.home} містить пробіл у шляху (наприклад, [C:\Users\Serge Tahé]). У рядку 7 ми вкажемо іншу папку для локального сховища Maven:


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

У рядку 7 слід уникати шляху, що містить пробіли.

23.3. Встановлення STS (Spring Tool Suite)

Ми встановимо SpringSource Tool Suite [http://www.springsource.com/developer/sts] (жовтень 2014 р.) — це Eclipse, попередньо оснащений численними плагінами, пов’язаними з фреймворком Spring, а також із попередньо встановленою конфігурацією Maven.

  • перейдіть на сайт SpringSource Tool Suite (STS) [1], щоб завантажити поточну версію STS [2A] [2B],
  • завантажений файл є інсталятором, який створює структуру файлів [3A] [3B]. У [4] запускається виконуваний файл,
  • у [5] — робоче вікно IDE після закриття вікна привітання. У [6] відображається вікно серверів додатків,
  • у [7] — вікно серверів. Сервер зареєстровано. Це сервер VMware, сумісний із Tomcat.

Необхідно вказати в STS папку встановлення Maven:

  • у [1-2] налаштовуємо STS;
  • у [3-4] додається нова інсталяція Maven;
  • у [5] вказуємо папку встановлення Maven;
  • у [6] завершуємо роботу майстра;
  • у [7] нову інсталяцію Maven встановлюємо як інсталяцію за замовчуванням;
  • у [8-9] перевіряється локальне сховище Maven — папка, куди будуть завантажуватися залежності та куди STS розміщуватиме створені артефакти;

Також потрібно вибрати JDK (Java Development Kit) для виконання як проектів Eclipse без Maven, так і з ним [1-5].

За допомогою [4] можна додати JDK (Java Development Kit) або JRE (Java Runtime Environment). Останній вміє виконувати файли .class, але не вміє компілювати файли .java для їх створення. JDK може виконувати обидві ці операції. Ми оберемо JDK, оскільки для деяких операцій Maven потрібний JDK.

Щоб створити проект Eclipse, слід виконати такі дії:

  • у [3] вкажіть назву проєкту;
  • у [4] вкажіть існуючу порожню папку;
  • у [5] — створений проект;
  • у [5-8] створіть пакет. Пакет — це папка, що містить код Java. Два класи можуть мати однакову назву, якщо вони належать до різних пакетів. У проекті не може бути двох пакетів з однаковою назвою. Отже, не можна використовувати назву пакета, яка вже існує в одній із залежностей проекту. Компанія використовуватиме як ім’я пакета назву, що вказує на компанію, проєкт та його різні гілки;
  • у [9], дайте ім’я пакету;
  • у [10] — створений пакет;
  • у [11-13] створюємо клас у створеному пакеті;
  • у [14], вкажіть ім'я класу (воно має відповідати стандарту CamelCase — кожне слово в імені має починатися з великої літери, а решта літер — бути малими);
  • у [15] перевірте пакет;
  • у [16] поставте галочку. Це вимагає, щоб був згенерований статичний метод [main]. Цей метод робить клас виконуваним, тобто першим класом, що виконується в проєкті;
  • у [17] — так створений клас;

Введіть у метод [main] наступний код, який виводить текст на консоль:


package st.istia;

public class Test01 {

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

}
  • у [18-20] запустіть клас. Тоді буде виконано його метод [main];
  • в [21-22] — результат виконання;

Якщо подання [Console] відсутнє, виконайте такі дії для [1-4]:

Під час імпортування проекту Eclipse можуть виникнути помилки. Це може бути пов’язано з неправильною конфігурацією проекту. Щоб виправити помилку (якщо вона є), виконайте такі дії:

  • у файлі [1] змініть файл [Build Path] проекту;
  • на [2] — проект налаштований на використання JVM 1.5;
  • на [3], видаліть цю залежність;
  • у [4] додайте нову залежність;
  • у [5] додайте JVM;
  • у [6] виберіть JVM з позиції;

Після цього підтверджуємо всі зміни, а потім переходимо до властивості [Java compiler] проекту [7]:

  • у [8] задаємо компілятору прийняти всі особливості мови Java аж до версії 1.7 (або 1.8) включно;
  • у файлі [9] виконується перевірка;
  • у [10] переконфігурований таким чином проєкт більше не повинен містити помилок;

Крім того, імпортований проєкт може використовувати кодування символів UTF-8. Щоб встановити це кодування в імпортованому проєкті [1-4], виконайте такі дії:

Крім того, може бути корисно вимкнути перевірку орфографії в проєкті, щоб коментарі французькою мовою не підкреслювалися як помилкові. Виконайте наведені нижче кроки [1-4]:

23.4. Встановлення SGBD MySQL5 Community Edition

SGBD MySQL5 Community Edition можна знайти (червень 2015 р.) за адресою URL [https://dev.mysql.com/downloads/mysql/]:

 

Встановлення відбувається наступним чином:

  • у [8] було використано пароль [root]. У цьому документі ідентифікатори адміністратора SGBD MySQL — це [root / root];

Після встановлення MySQL 5 відкрийте сторінку управління службами Windows:

  • [1]: піктограма Windows у нижньому лівому куті;
  • у [8] встановіть для служби [MySQL56] ручний запуск, щоб вона не витрачала ресурси даремно. Ви зможете запускати її зі сторінки служб щоразу, коли це буде потрібно;

23.5. Встановлення EMS MyManager

Сайт [http://www.sqlmanager.net/en/] пропонує безкоштовні клієнти для управління шістьма типами SGBD:

 

Перевага полягає в тому, що всі вони мають однаковий інтерфейс для управління SGBD. Це ідеально підходить для цього документа, де потрібно керувати шістьма SGBD. При зміні SGBD не потрібно освоювати новий клієнт. Усі вони знаходяться за адресою URL [http://www.sqlmanager.net/download/]. Завантажимо безкоштовні версії, так звані lite:

 
 

Наразі (травень 2015 року) доступні для завантаження такі версії URL:

MySQL5
IBM DB2
Firebird / Interbase
Oracle
Microsoft SQL Server
PostgreSQL

При встановленні, наприклад, клієнта MyManager з MySQL5, отримуємо таку структуру каталогів:

  • виконуваний файл знаходиться в [2];
  • етапи [3-8] показують, як підключити [MyManager] до однієї з баз даних MySQL;
  • у [4] пароль — [root];

23.6. Встановлення SGBD Oracle Database Express Edition 11g Release 2

SGBD Oracle Database Express Edition 11g Release 2 доступна у версії URL (червень 2015 року): [http://www.oracle.com/technetwork/database/database-techno logies/express-edition/downloads/index.html]:

 

Встановлення відбувається наступним чином:

  • у [6] вводиться пароль [system]. У цьому документі облікові дані адміністратора Oracle — [system / system];

Програма встановлює Oracle як службу Windows. Встановлюється кілька служб, які за замовчуванням запускаються автоматично. Перше, що потрібно зробити, — це перевести їх у ручний режим:

Необхідно запустити дві служби:

  • [OracleXETNSListener], який на порту 1521 приймає запити, що надходять до SGBD;
  • [OracleServiceXE], який є SGBD;

Для адміністрування Oracle ми будемо використовувати клієнт [OraManager] (параграф 23.5). Щоб його можна було використовувати, спочатку потрібно встановити пакет [Oracle Database Express Edition 11g Release 2 Client], доступний на URL (червень 2015 року): [http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html]. Необхідно завантажити 32-бітну версію, оскільки [OraManager] є 32-бітним клієнтом:

 

Встановлення цього пакету здійснюється наступним чином:

  • у [3] вкажіть папку <oracleXE-install>\app\oracle\product\11.2.0\client_1, де <oracleXE-install> — це папка, в яку ви встановили Oracle Express;

Тепер підключімо клієнт [OraManager] до Oracle SGBD:

  • у [2]; ім’я групи можна вибрати довільно;
  • в [4] обов’язково вкажіть XE;
  • у [5] псевдонім можна вибрати довільно;
  • у [6] ідентифікатори — [system / system];

23.7. Встановлення SGBD PostgreSQL 9.4

SGBD PostgreSQL 9.4 доступний у URL (червень 2015 р.): [http://www.enterprisedb.com/products-services-training/pgdownload#windows]:

 

Встановлення відбувається наступним чином:

  • у [4] пароль — postgres. У цьому документі облікові дані адміністратора SGBD PostgreSQL — це [postgres / postgres];

Програма встановлює PostgreSQL як службу Windows з автоматичним запуском. Перше, що потрібно зробити, — це перевести її в ручний режим:

Тепер підключимо клієнт [PgManager] (див. параграф 23.5) до SGBD PostgreSQL:

  • у [2] ідентифікатори мають вигляд [postgres / postgres];
  • у [3] здійснюється підключення до бази [postgres];

23.8. Встановлення SGBD DB2 Express

SGBD DB2 Express доступний на URL (червень 2015 р.): [http://www-01.ibm.com/software/data/db2/express-c/download.html]:

 

Встановлення відбувається наступним чином:

  • у [9] пароль — [db2admin]. У цьому документі облікові дані адміністратора SGBD — [db2admin / db2admin];
 

Примітка: може виникнути спокуса пропустити цей крок. Не варто цього робити. Цей крок створить папку, в якій будуть зберігатися бази даних DB2, які ми збираємося створити.

  • була створена папка [d:\DB2] [1];
  • база даних [SAMPLE] була створена у папці [d:\db2\node0000];

Програма встановлює DB2 як службу Windows з автоматичним запуском. Перше, що потрібно зробити, — це перевести її в ручний режим:

Виконайте це для всіх вищезазначених служб [DB2*]. Для цілей цього документа потрібно запустити лише службу [DB2 - DB2COPY1].

Тепер підключимо клієнт [Db2Manager] (див. параграф 23.5) до SGBD та DB2:

  • у [1] використовувати ідентифікатори [db2admin / db2admin];

23.9. Встановлення SGBD SQL Server 2014 Express

SGBD SQL Server 2014 Express доступний у URL (червень 2015 р.): [http://www.microsoft.com/fr-fr/server-cloud/products/sql-server/]:

 

Встановлення відбувається наступним чином:

 
 
 
 
 
  • у [1] введіть будь-який пароль. Пізніше ми його змінимо;
 
 

Далі запускаємо службу SQL Server:

Після цього запускаємо клієнт [Microsoft SQL Server Management Studio], який було встановлено одночасно з SGBD (див. меню «Пуск»):

Цей клієнт можна було б використовувати для адміністрування сервера SQL. Однак для забезпечення узгодженості з клієнтами інших SGBD ми будемо використовувати клієнт [MsManager] (див. параграф 23.5).

  • у [1] запишіть ім’я SGBD;
  • у [2] встановлено пароль msde. У цьому документі облікові дані адміністратора SGBD — це [sa / msde];

Після цього запускаємо утиліту [Gestionaire de configuration SQL Server], яка була встановлена разом із SGBD (див. меню «Пуск»):

  • за замовчуванням у [2] зв’язок TCP/IP не активовано. Для цього документа його потрібно активувати [3];
  • у [4], також для потреб цього документа, слід вказати, що SGBD очікує запити клієнтів на порту 1433. Значення [Ports TCP dynamiques] має бути порожнім;

Після цього запускаємо клієнт [MsManager] (див. параграф 23.5):

  • у [3] введіть ім’я, зазначене в [1];
  • у [4] ідентифікатори — [sa / msde];
 

23.10. Встановлення SGBD Firebird

SGBD Firebird 2.5.4 доступний на URL (червень 2015 р.): [http://www.firebirdsql.org/en/firebird-2-5-4/]:

 

Встановлення відбувається наступним чином:

 

Тепер перевіримо режим запуску створеної служби Windows:

Тепер підключімо клієнт [IBManager] (див. параграф 23.5) до встановленого Firebird SGBD:

  • у [1] пароль — masterkey;

23.11. Встановлення плагіна Chrome [Advanced Rest Client]

У цьому документі використовується браузер Chrome від Google (http://www.google.fr/intl/fr/chrome/browser/). До нього буде додано розширення [Advanced Rest Client]. Для цього можна зробити наступне:

 
  • після чого додаток стане доступним для завантаження:
  • щоб її отримати, вам потрібно створити обліковий запис Google. [Google Web Store] потім вимагає підтвердження [1]:
  • У [2] доданий розширення доступний у меню [Applications] [3]. Цей пункт меню відображається на кожній новій вкладці, яку ви створюєте (CTRL-T) у браузері.

23.12. Робота з jSON на Java

У спосіб, цілком прозо для розробника, фреймворк [Spring MVC] використовує бібліотеку jSON [Jackson]. Щоб проілюструвати, що таке jSON (JavaScript Object Notation), ми наводимо тут програму, яка серіалізує об’єкти у формат jSON та виконує зворотну операцію, десеріалізуючи отримані рядки jSON для відтворення вихідних об’єктів.

Бібліотека «Jackson» дозволяє побудувати:

  • рядок jSON для об’єкта: new ObjectMapper().writeValueAsString(object);
  • об’єкт на основі рядка jSON: new ObjectMapper().readValue(jsonString, Object.class).

Обидва методи можуть викликати виняток. Ось приклад.

  

Вищезазначений проєкт — це проєкт Maven із таким файлом [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>
  • рядки 12–16: залежність, що імпортує бібліотеку «Jackson»;

Клас [Personne] має такий вигляд:


package istia.st.json;

public class Personne {
    // дані
    private String nom;
    private String prenom;
    private int age;

    // виробники
    public Personne() {

    }

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

    // підпис
    public String toString() {
        return String.format("Personne[%s, %s, %d]", nom, prenom, age);
    }

    // гетери та сеттери
...
}

Клас [Main] має такий вигляд:


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 {
  // інструмент серіалізації/десеріалізації
  static ObjectMapper mapper = new ObjectMapper();

  public static void main(String[] args) throws IOException {
    // створення особи
    Personne paul = new Personne("Denis", "Paul", 40);
    // відображення jSON
    String json = mapper.writeValueAsString(paul);
    System.out.println("Json=" + json);
    // інстанціювання об’єкта «Особа» на основі JSON
    Personne p = mapper.readValue(json, Personne.class);
    // відображення особи
    System.out.println("Personne=" + p);
    // масив
    Personne virginie = new Personne("Radot", "Virginie", 20);
    Personne[] personnes = new Personne[]{paul, virginie};
    // відображення JSON
    json = mapper.writeValueAsString(personnes);
    System.out.println("Json personnes=" + json);
    // словник
    Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
    hpersonnes.put("1", paul);
    hpersonnes.put("2", virginie);
    // відображення JSON
    json = mapper.writeValueAsString(hpersonnes);
    System.out.println("Json hpersonnes=" + json);
  }
}

Виконання цього класу призводить до виведення на екран наступного:

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

З цього прикладу слід звернути увагу на:

  • об’єкт [ObjectMapper], необхідний для перетворень jSON / Object: рядок 11;
  • перетворення [Personne] --> jSON: рядок 17;
  • перетворення jSON --> [Personne]: рядок 20;
  • виняток [IOException], викликаний обома методами: рядок 13.