5. Додатки
Тут ми описуємо встановлення та базове використання інструментів, що застосовуються в документі «Персистентність Java 5 на практиці». Наведена нижче інформація актуальна станом на травень 2007 року. Вона швидко застаріє. Коли це станеться, читачеві буде запропоновано виконати аналогічні, але не ідентичні дії. Встановлення було виконано на комп’ютері з ОС Windows XP Professional.
5.1. Java
Ми використовуватимемо останню версію Java, доступну на сайті Sun [http://www.sun.com]. Завантажити її можна за посиланням [http://java.sun.com/javase/downloads/index.jsp]:


Запустіть інсталяцію JDK із завантаженого файлу. За замовчуванням Java інсталюється в [C:\Program Files\Java]:

5.2. Eclipse
5.2.1. Базова інсталяція
Eclipse — це IDE, доступний за адресою [http://www.eclipse.org/], який можна завантажити за адресою [http://www.eclipse.org/downloads/]. Нижче ми завантажуємо Eclipse 3.2.2:
![]()
Після завантаження архіву його потрібно розпакувати в папку на диску:

Надалі папку з інсталяцією Eclipse, зазначену вище як [C:\devjava\eclipse 3.2.2\eclipse], ми будемо називати <eclipse>. [eclipse.exe] — це виконуваний файл, а [eclipse.ini] — його файл конфігурації. Давайте подивимося на його вміст:
Ці аргументи використовуються під час запуску Eclipse наступним чином:
Ми отримуємо той самий результат, що й у випадку з файлом .ini, створивши ярлик, який запускає Eclipse з цими самими аргументами. Роз’яснимо їх:
- -vmargs: вказує, що наступні аргументи призначені для віртуальної машини Java, яка виконуватиме Eclipse. Eclipse — це Java-додаток.
- -Xms40m: ?
- -Xmx256m: встановлює розмір пам’яті в Мб, виділений для віртуальної машини Java (JVM), яка виконує Eclipse. За замовчуванням цей розмір становить 256 Мб, як показано тут. Якщо ресурси машини дозволяють, краще встановити 512 Мб.
Ці аргументи передаються до JVM, яка запускає Eclipse. JVM представлена файлом [java.exe] або [javaw.exe]. Як його знайти? Насправді його шукають різними способами:
- у файлі PATH, що міститься у OS
- у папці <JAVA_HOME>/jre/bin, де JAVA_HOME — це системна змінна, що визначає кореневу папку JDK.
- у місце, яке передається як аргумент до Eclipse у вигляді -vm <шлях>\javaw.exe
Останній варіант є кращим, оскільки два інші схильні до непередбачуваних наслідків подальшої інсталяції програм, які можуть або змінити PATH на OS, або змінити змінну JAVA_HOME.
Тому ми створюємо такий ярлик:

<eclipse>\eclipse.exe" -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m | |
папка <eclipse> з інсталяцією Eclipse |
Після цього запустимо Eclipse за допомогою цього ярлика. З’явиться перше діалогове вікно:

[workspace] — це робоча область. Приймемо запропоновані значення за замовчуванням. За замовчуванням проекти Eclipse створюватимуться у папці <workspace>, вказаній у цьому діалоговому вікні. Існує спосіб обійти цю поведінку. Саме це ми й робитимемо систематично. Тому відповідь, надана у цьому діалоговому вікні, не має значення.
Після цього кроку відобразиться середовище розробки Eclipse:

Ми закриваємо вікно [Welcome], як запропоновано вище:

Перш ніж створити проект Java, ми налаштуємо Eclipse, вказавши, що для компіляції проектів Java слід використовувати JDK. Для цього вибираємо опцію [Window / Preferences / Java / Installed JREs ]:

Зазвичай JRE (Java Runtime Environment), який використовувався для запуску самого Eclipse, має бути присутнім у списку JRE. Зазвичай це буде єдиний запис. Можна додати JRE за допомогою кнопки [Add]. Для цього потрібно вказати кореневий каталог JRE. Кнопка [Search], у свою чергу, запустить пошук JREs на диску. Це хороший спосіб дізнатися, що відбувається з JREs, які ми встановлюємо, а потім забуваємо видалити при переході на новішу версію. Вище позначений JRE — це той, який буде використовуватися для компіляції та виконання Java-проектів. Саме його було встановлено в розділі 5.1, і саме він також використовувався для запуску Eclipse. Подвійне клацання по ньому відкриває вікно його властивостей:

Тепер створимо Java-проект [File / New / Project]:
![]() | ![]() |
Виберіть [Java Project], а потім [Next] ->

У [2] вказуємо порожню папку, в яку буде встановлено проект Java. У [1] задаємо ім’я проекту. Він не обов’язково має мати таку саму назву, як папка, на відміну від того, що може здатися з наведеного вище прикладу. Після цього натискаємо кнопку [Next], щоб перейти на наступну сторінку майстра створення:

Вище ми створюємо спеціальну папку в проєкті для зберігання вихідних файлів (.java):

![]() |
- у [1] ми бачимо папку [src], у якій будуть зберігатися вихідні файли .java
- у [2] ми бачимо папку [bin], у якій будуть зберігатися скомпільовані файли .class
Ми завершуємо роботу майстра з [Finish]. Отже, ми маємо каркас проекту Java:

Клацнімо правою кнопкою миші на проекті [test1], щоб створити клас Java:

![]() |
- у [1] — папці, в якій буде створено клас. Eclipse за замовчуванням пропонує папку поточного проєкту.
- у [2] — пакет, у якому буде розміщено клас
- у [3] — ім’я класу
- у [4] ми вказуємо, що має бути згенерований статичний метод [main]
Ми підтверджуємо дії майстра за допомогою [Finish]. Після цього проект доповнюється класом:

Eclipse згенерував каркас класу. Його можна відкрити, двічі клацнувши на [Test1.java] вище:

Ми змінюємо наведений вище код наступним чином:

Запускаємо програму [Test1.java]: [clic droit sur Test1.java -> Run As -> Java Application]

Результат виконання відображається у вікні [Console]:

Вікно [Console] має з’явитися за замовчуванням. Якщо цього не сталося, його можна викликати за допомогою команди [Window/Show View/Console]:

5.2.2. Вибір компілятора
Eclipse дозволяє генерувати код, сумісний з Java 1.4, Java 1.5 та Java 1.6. За замовчуванням він налаштований на генерацію коду, сумісного з Java 1.4. Для API та JPA потрібен код Java 1.5. Змінюємо тип коду, що генерується [Window / Preferences / Java / Compiler]:
![]() |
- на [1]: вибір опції [Java / Compiler]
- на [2]: вибір сумісності з Java 5.0
5.2.3. Встановлення плагінів Callisto для
Базова версія, встановлена вище, дозволяє створювати консольні Java-додатки, але не веб-додатки чи додатки типу Swing; у таких випадках все доводиться робити самостійно. Ми встановимо різні плагіни:
Процедура така: [Help/Software Udates/Find and Install]:
![]() |
- у [2] вказуємо, що хочемо встановити нові плагіни
![]() |
- у [3] вказуємо сайти, які слід переглянути для пошуку плагінів
- у [4] потрібно позначити потрібні плагіни
![]() |
- у [5] Eclipse повідомляє, що вибрано плагін, який залежить від інших плагінів, що не були обрані
- у [6] використовується кнопка [Select Required] для автоматичного вибору відсутніх плагінів
- у [7] приймаються умови ліцензій цих різних плагінів
![]() |
- у [8] відображається список усіх плагінів, які будуть встановлені
- у [9] запускається завантаження цих плагінів
- у [10], після їх завантаження встановлюються всі плагіни без перевірки їх підпису
![]() |
- у [11], після завершення встановлення плагінів даємо Eclipse перезапуститися
- у [12]; якщо виконати [File/New/Project], виявляється, що тепер можна створювати веб-додатки, чого спочатку не було.
5.2.4. Встановлення плагіна [TestNG]
TestNG (Test Next Generation) — це інструмент для модульного тестування, схожий за своєю концепцією на JUnit. Однак він має вдосконалення, завдяки яким ми віддаємо йому перевагу перед JUnit. Діємо так само, як і раніше: [Help/Software Udates/Find and Install]:
![]() |
- у [2] вказуємо, що хочемо встановити нові плагіни
![]() |
- у [3a] сайт для завантаження [TestNG] відсутній. Ми додаємо його за допомогою [3b]
- у [4b]: сайт плагіна — [http://beust.com/eclipse]. У [4a] вказуємо те, що хочемо.
![]() |
- у полі [5a] для оновлення вибрано плагін [TestNG]. У полі [5b] запускається процес оновлення.
- У [6] встановлено з’єднання з сайтом плагіна. Нам показуються всі плагіни, доступні на сайті. Тут лише один, який ми вибираємо, перш ніж перейти до наступного етапу.
![]() |
- у [7] приймаємо умови ліцензії плагіна
- у [8] ми бачимо список усіх плагінів, які будуть встановлені, тут — один. Запускаємо завантаження. Далі все відбувається так, як описано вище для плагінів Callisto.
Після перезапуску Eclipse можна переконатися в наявності нового плагіна, наприклад, переглянувши доступні вікна [Window / show View / Other]:
![]() |
Як бачимо вище, з’явився новий вигляд [TestNG], якого раніше не було.
5.2.5. Встановлення плагіна [Hibernate Tools]
Hibernate — це постачальник JPA, а плагін [Hibernate Tools] для Eclipse є корисним при розробці додатків JPA. У травні 2007 року лише її остання версія (3.2.0beta9) дозволяє працювати з Hibernate/JPA, але її неможливо завантажити за допомогою описаного вище механізму. Доступні лише старіші версії. Тому ми будемо діяти інакше.
Плагін доступний на сайті Hibernate Tools: http://tools.hibernate.org/.
![]() |
- у [1], вибираємо останню версію Hibernate Tools
- у [2] завантажуємо її
![]() |
- у [3] за допомогою програми для розпакування розпакуйте завантажений zip-файл у папку <eclipse> (бажано, щоб Eclipse не працював)
- у [4], підтверджуємо, що під час операції деякі файли будуть перезаписані
Перезапускаємо Eclipse:
![]() |
- у [1]: відкриваємо перспективу
- у [2]: тепер існує перспектива [Hibernate Console]
Ми не будемо далі працювати з плагіном [Hibernate Tools] (натискаємо «Cancel» у [2]). Спосіб його використання пояснено у прикладах цього посібника.
Іноді Eclipse не виявляє наявність нових плагінів. Можна змусити програму повторно просканувати всі плагіни за допомогою опції -clean. Таким чином, виконуваний файл ярлика Eclipse слід змінити наступним чином:
"<eclipse>\eclipse.exe" -clean -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m
Після того як Eclipse виявить нові плагіни, слід видалити згадану вище опцію -clean.
5.2.6. Встановлення плагіна [SQL Explorer]
Тепер ми встановимо плагін, який дозволить нам переглядати вміст бази даних безпосередньо з Eclipse. Доступні для Eclipse плагіни можна знайти на сайті [http://eclipse-plugins.2y.net/eclipse/plugins.jsp]:
![]() |
- на [1]: сайт плагінів Eclipse
- на [2]: виберіть категорію [Database]
- на [3]: у категорії [Database] виберіть сортування за рейтингом (не надто надійне, з огляду на невелику кількість голосуючих)
- у [4]: QuantumDB посідає 1-ше місце
- у [5]: ми обираємо SQLExplorer — старіший, з нижчим рейтингом (3-тє місце), але все одно дуже хороший. Переходимо на сайт плагіна [plugin-homepage]
![]() |
- у [6] та [7]: завантажуємо плагін.
![]() |
- та [8]: розпакуйте zip-файл плагіна у папку Eclipse.
Щоб перевірити, перезапустіть Eclipse, за необхідності з опцією -clean:
![]() |
- у [1]: відкрийте нову перспективу
- в [2]: бачимо, що доступна перспектива [SQL Explorer]. До неї ми повернемося пізніше.
5.3. Контейнер сервлетів Tomcat 5.5
5.3.1. Встановлення
Для виконання сервлетів нам потрібен контейнер сервлетів. Тут ми розглянемо один із них — Tomcat 5.5, доступний за адресою http://tomcat.apache.org/. Ми наведемо покрокову інструкцію (станом на травень 2007 року) щодо його встановлення. Якщо попередня версія Tomcat уже встановлена, краще спочатку її видалити.

Щоб завантажити продукт, перейдіть за посиланням [Tomcat 5.x], наведеним вище:

Можна завантажити файл .exe, призначений для платформи Windows. Після завантаження запустіть інсталяцію Tomcat, двічі клацнувши на ньому:

Погодьтеся з умовами ліцензії ->

Виконайте [next] ->

Прийняти запропоновану папку для встановлення або змінити її за допомогою [Browse] ->

Встановити логін та пароль адміністратора сервера Tomcat. Тут вказано [admin / admin] ->
![]() |
Tomcat 5.x потребує JRE версії 1.5. Зазвичай він має знайти той, що встановлений на вашому комп’ютері. Вище вказано шлях до JRE версії 1.6, завантаженого в розділі 5.1. Якщо JRE не знайдено, вкажіть його кореневий каталог за допомогою кнопки [1]. Після цього скористайтеся кнопкою [Install], щоб встановити Tomcat 5.x ->

Кнопка [Finish] завершує встановлення. Про наявність Tomcat свідчить іконка праворуч на панелі завдань Windows:

Правий клік на цій іконці відкриває доступ до команд «Увімкнути» та «Вимкнути» сервера:

Ми використовуємо опцію [Stop service], щоб негайно зупинити веб-сервер:

Зверніть увагу на зміну стану піктограми. Її можна прибрати з панелі завдань:

Встановлення Tomcat відбулося у папці, обраній користувачем, яку відтепер називатимемо <tomcat>. Структура цієї папки для завантаженої версії Tomcat 5.5.23 є такою:

В результаті встановлення Tomcat у меню з’явилася низка ярликів [Démarrer]. Ми використовуємо посилання [Monitor], наведене нижче, для запуску інструменту зупинки/запуску Tomcat:

Після цього ми бачимо значок, показаний раніше:

Монітор Tomcat можна увімкнути подвійним клацанням на цій піктограмі:

Кнопки [Start - Stop - Pause] — «Restart» дозволяють запускати, зупиняти та перезапускати сервер. Запускаємо сервер за допомогою кнопки [Start], а потім у браузері вводимо URL-адресу http://localhost:8080. Ми повинні побачити сторінку, схожу на таку:

Щоб перевірити правильність встановлення Tomcat, можна перейти за наведеними нижче посиланнями:

Усі посилання на сторінці [http://localhost:8080] є цікавими, і читачеві пропонується ознайомитися з ними. Ми ще повернемося до посилань, що дозволяють керувати веб-додатками, розгорнутими на сервері:

5.3.2. Розгортання веб-додатку на сервері Tomcat
5.3.3. Розгортання
Веб-додаток має відповідати певним правилам, щоб його можна було розгорнути в контейнері сервлетів. Нехай <webapp> — це папка веб-додатка. Веб-додаток складається з:
у папці <webapp>\WEB-INF\classes | |
у папці <webapp>\WEB-INF\lib | |
у папці <webapp> або її підпапках |
Веб-додаток налаштовується за допомогою файлу XML: <webapp>\WEB-INF\web.xml. Цей файл не потрібен у простих випадках, зокрема коли веб-додаток містить лише статичні файли. Створимо такий файл HTML:
<html>
<head>
<title>Application exemple</title>
</head>
<body>
Application exemple active ....
</body>
</html>
і збережемо його в папці:

Якщо завантажити цей файл у браузер, ми отримаємо таку сторінку:

URL, що відображається браузером, показує, що сторінка не була надана веб-сервером, а завантажена безпосередньо браузером. Тепер ми хочемо, щоб вона була доступна через веб-сервер Tomcat.
Повернемося до структури каталогів <tomcat>:

Налаштування веб-додатків, розгорнутих на сервері Tomcat, здійснюється за допомогою файлів XML, розміщених у папці [<tomcat>\conf\Catalina\localhost]:
![]() | ![]() |
Ці файли XML можна створити вручну, оскільки їхня структура є простою. Однак замість цього ми скористаємося веб-інструментами, які надає Tomcat.
5.3.4. Адміністрування Tomcat-
На своїй сторінці входу http://localhost:8080 сервер пропонує нам посилання для його адміністрування:

Посилання [Tomcat Administration] дає нам можливість налаштувати ресурси, які Tomcat надає веб-додаткам, розгорнутим на ньому, наприклад, пул з’єднань із базою даних. Перейдемо за посиланням:

На сторінці, що відкрилася, зазначено, що для адміністрування Tomcat 5.x потрібен спеціальний пакет під назвою «admin». Повернімося на сайт Tomcat [http://tomcat.apache.org/download-55.cgi]:

Завантажимо архів із назвою [Administration Web Application], а потім розпакуємо його. Його вміст такий:

Папку [admin] потрібно скопіювати в [<tomcat>\server\webapps], де <tomcat> — це папка, в яку було встановлено Tomcat 5.x:

Папка [localhost] містить файл [admin.xml], який потрібно скопіювати в папку [<tomcat>\conf\Catalina\localhost]:

Зупинімо, а потім перезапустимо Tomcat, якщо він був активним. Потім за допомогою браузера знову відкриємо сторінку входу на веб-сервер:

Перейдемо за посиланням [Tomcat Administration]. Ми потрапимо на сторінку входу (щоб її відкрити, може знадобитися «перезавантаження/оновлення» сторінки):
![]() | ![]() |
Тут потрібно ввести дані, які ми вказали під час встановлення Tomcat. У нашому випадку ми вводимо комбінацію admin / admin. Кнопка [Login] переводить нас на наступну сторінку:

Ця сторінка дозволяє адміністратору Tomcat налаштувати
- джерела даних (Data Sources),
- інформацію, необхідну для відправлення електронної пошти (Mail Sessions),
- дані середовища, доступні для всіх додатків (Environment Entries),
- управляти користувачами/адміністраторами Tomcat (Users),
- управляти групами користувачів (Groups),
- визначення ролей (= що може або не може робити користувач),
- визначення характеристик веб-додатків, розгорнутих сервером (Service Catalina)
Перейдімо за посиланням [Roles], наведеним вище:

Роль дозволяє визначити, що може або не може робити користувач чи група користувачів. З роллю пов’язані певні права. Кожен користувач прив’язаний до однієї або кількох ролей і має права, що їм належать. Роль [manager], наведена нижче, надає право керувати веб-додатками, розгорнутими в Tomcat (розгортання, запуск, зупинка, вивантаження). Ми створимо користувача [manager], якого прив’яжемо до ролі [manager], щоб надати йому можливість керувати додатками Tomcat. Для цього перейдемо за посиланням [Users] на сторінці адміністрування:

Ми бачимо, що певна кількість користувачів уже існує. Ми використовуємо опцію [Create New User] для створення нового користувача:

Ми призначаємо користувачеві manager пароль manager та надаємо йому роль manager. Ми використовуємо кнопку [Save], щоб підтвердити це додавання. Новий користувач з’являється у списку користувачів:

Цей новий користувач буде доданий до файлу [<tomcat>\conf\tomcat-users.xml]:

вміст якого такий:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="manager" password="manager" fullName="" roles="manager"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
- рядок 10: користувач [manager], який було створено
Інший спосіб додавання користувачів — це безпосередня редакція цього файлу. Саме так слід вчинити, якщо, наприклад, ви забули пароль адміністратора «admin» або менеджера.
5.3.5. Управління розгорнутими веб-додатками
Тепер повернімося до сторінки входу [http://localhost:8080] і перейдімо за посиланням [Tomcat Manager]:

Після цього ми потрапляємо на сторінку автентифікації. Ми входимо під ім’ям manager / manager, c.a.d — користувач із роллю [manager], якого ми щойно створили. Адже лише користувач із цією роллю може скористатися цим посиланням. У рядку 11 запису [tomcat-users.xml] ми бачимо, що користувач [admin] також має роль [manager]. Отже, ми також могли б скористатися автентифікацією [admin / admin].

Ми отримуємо сторінку зі списком додатків, які наразі розгорнуті в Tomcat:

Ми можемо додати новий додаток за допомогою форм, розміщених у нижній частині сторінки:

Тут ми хочемо розгорнути в Tomcat приклад додатка, який ми створили раніше. Робимо це таким чином:

/example | ім’я, яке використовується для позначення веб-додатка , що розгортається | |
C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\приклад | папка веб-додатка |
Щоб отримати файл [C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\exemple\exemple.html], ми запитаємо у Tomcat URL та [http://localhost:8080/exemple/exemple.html]. Контекст слугує для присвоєння імені кореневому каталогу дерева розгорнутого веб-додатка. Ми використовуємо кнопку [Deploy] для розгортання додатка. Якщо все пройде успішно, ми отримаємо таку сторінку відповіді:

і новий додаток з’являється у списку розгорнутих додатків:
![]() |
Прокоментуємо рядок контексту /example вище:
посилання на http://localhost:8080/exemple | |
дозволяє запустити додаток | |
дозволяє зупинити додаток | |
дозволяє перезавантажити додаток. Це потрібно, наприклад, коли були додані, змінено або видалено певні класи в додатку. | |
видалення контексту [/exemple]. Додаток зникає зі списку доступних додатків. |
Тепер, коли наш додаток /example розгорнуто, ми можемо провести кілька тестів. Ми завантажуємо сторінку [exemple.html] за URL-адресою [http://localhost:8080/exemple/vues/exemple.html]:

Інший спосіб розгортання веб-додатку на сервері Tomcat — це вказати дані, які ми ввели через веб-інтерфейс, у файлі [contexte].xml, розміщеному в папці [<tomcat>\conf\Catalina\localhost], де [contexte] — це назва веб-додатку.
Повернемося до адміністративного інтерфейсу Tomcat:

Видаляємо додаток [/exemple] разом із його посиланням [Undeploy]:

Додаток [/exemple] більше не входить до списку активних додатків. Тепер визначимо такий файл [exemple.xml]:
Файл XML складається з єдиного тегу <Context>, атрибут якого docBase визначає папку, що містить веб-додаток, який потрібно розгорнути. Помістимо цей файл у <tomcat>\conf\Catalina\localhost:

За необхідності зупинімо та перезапустимо Tomcat, а потім переглянемо список активних додатків за допомогою адміністратора Tomcat:

Додаток [/exemple] дійсно присутній. Запросімо в браузері URL-адресу:
[http://localhost:8080/exemple/exemple.html]:

Розгорнутий таким чином веб-додаток можна видалити зі списку розгорнутих додатків так само, як і раніше, за посиланням [Undeploy]:

У цьому випадку файл [exemple.xml] автоматично видаляється з папки [<tomcat>\conf\Catalina\localhost].
Нарешті, для розгортання веб-додатка в Tomcat також можна визначити його контекст у файлі [<tomcat>\conf\server.xml]. Цю тему ми тут не розглядатимемо.
5.3.6. Веб-додаток із початковою сторінкою
Коли ми звертаємося за URL-адресою [http://localhost:8080/exemple/], отримуємо таку відповідь:

У деяких попередніх версіях Tomcat ми отримали б вміст фізичної папки додатка [/exemple].
Можна налаштувати систему так, щоб при запиті контексту відображалася так звана головна сторінка. Для цього ми створюємо файл [web.xml], який розміщуємо в папці <приклад>\WEB-INF, де <приклад> — це фізична папка веб-додатку [/exemple]. Цей файл має такий вигляд:
- рядки 2–5: кореневий тег <web-app> з атрибутами, скопійованими з файлу [web.xml] веб-додатку [/admin] у Tomcat (<tomcat>/server/webapps/admin/WEB-INF/web.xml).
- рядок 7: ім’я для відображення веб-додатка. Це довільне ім’я, яке має менше обмежень, ніж ім’я контексту додатка. Наприклад, у ньому можна вживати пробіли, що неможливо для імені контексту. Це ім’я відображається, наприклад, у адміністраторі Tomcat:

- рядок 8: опис веб-додатка. Цей текст можна згодом отримати програмним шляхом.
- рядки 9–11: список файлів привітання. Тег <welcome-file-list> використовується для визначення списку сторінок, які мають відображатися, коли клієнт запитує контекст додатка. Таких сторінок може бути кілька. Клієнту відображається перша знайдена сторінка. Тут у нас є лише одна: [/exemple.html]. Отже, коли клієнт запитає URL-адресу [/exemple], йому фактично буде надано URL-адресу [/exemple/exemple.html].
Збережемо цей файл [web.xml] у папці <приклад>\WEB-INF:

Якщо Tomcat все ще працює, можна змусити його перезавантажити веб-додаток [/exemple] за посиланням [Recharger]:

Під час цієї операції «перезавантаження» Tomcat повторно зчитує файл [web.xml], що міститься у [<exemple>\WEB-INF], якщо він існує. У даному випадку це саме так. Якщо Tomcat було зупинено, запустіть його знову.
За допомогою браузера відкриємо URL та [http://localhost:8080/exemple/]:

Механізм обробки файлів-шаблонів спрацював.
5.3.7. Інтеграція Tomcat в Eclipse
Тепер ми інтегруємо Tomcat в Eclipse. Ця інтеграція дозволяє:
- запускати/зупиняти Tomcat безпосередньо з Eclipse
- розробляти веб-додатки на Java та запускати їх на Tomcat. Інтеграція Eclipse та Tomcat дає змогу відстежувати (налагоджувати) виконання додатка, зокрема виконання Java-класів (сервлетів), що запускаються Tomcat.
Запустимо Eclipse, а потім відкриємо вікно [Servers]:
![]() |
- у [1]: Window/Show View/Other
- у [2]: виберіть вікно [Servers] і виконайте [OK]
![]() |
- у [1] з’являється новий вигляд [Servers]
- в [2], клацніть правою кнопкою миші на поданні та виберіть опцію створення нового сервера [New/Server]
- в [3], вибираємо сервер [Tomcat 5.5], а потім отримуємо [Next]
![]() |
- в [4], вказуємо папку встановлення Tomcat 5.5
- у [5] вказуємо, що на даний момент немає проектів Eclipse/Tomcat. виконуємо [Finish]
Додавання сервера супроводжується додаванням папки в провіднику проектів Eclipse [6] та появою сервера у вікні перегляду [servers] [7]:
![]() |
У вікні [Servers] відображаються всі зареєстровані сервери, у даному випадку — лише сервер Tomcat 5.5, який ми щойно зареєстрували. Клацнувши на ньому правою кнопкою миші, можна отримати доступ до команд, що дозволяють запустити, зупинити або перезапустити сервер:

На малюнку вище ми запускаємо сервер. Під час його запуску у вікні [Console] записується певна кількість журнальних записів:
Розуміння цих журналів вимагає певної практики. Наразі ми не будемо на цьому зупинятися. Однак важливо перевірити, чи не вказують вони на помилки завантаження контекстів. Дійсно, під час запуску сервер Tomcat / Eclipse намагається завантажити контекст додатків, якими він керує. Завантаження контексту додатка передбачає використання його файлу [web.xml] та завантаження одного або декількох класів, що його ініціалізують. При цьому можуть виникнути кілька типів помилок:
- файл [web.xml] містить синтаксичні помилки. Це найпоширеніша помилка. Рекомендується використовувати інструмент, здатний перевіряти валідність документа XML під час його створення.
- деякі класи, які потрібно завантажити, не були знайдені. Їх шукають у файлах [WEB-INF/classes] та [WEB-INF/lib]. Зазвичай слід перевірити наявність необхідних класів та правильність написання тих, що оголошені у файлі [web.xml].
Сервер, запущений з Eclipse, має іншу конфігурацію, ніж той, що встановлено в розділі 5.3. Щоб переконатися в цьому, відкриємо URL-адресу [http://localhost:8080] у браузері:

Ця відповідь не означає, що сервер не працює, а лише те, що запитуваний ресурс / недоступний. З сервером Tomcat, інтегрованим в Eclipse, цими ресурсами будуть веб-проєкти. Ми розглянемо це пізніше. А поки що зупинімо Tomcat:

Попередній режим роботи можна змінити. Повернімося до вікна [Servers] і двічі клацнімо на сервері Tomcat, щоб отримати доступ до його властивостей:
![]() | 1 ![]() |
Поле [1] відповідає за попередній режим роботи. Коли воно відмічене, веб-додатки, розроблені в Eclipse, не заявляються у файлах конфігурації відповідного сервера Tomcat, а в окремих файлах конфігурації. У результаті цього на сервері Tomcat відсутні додатки, визначені за замовчуванням: [admin] та [manager], які є двома корисними додатками. Тому ми знімемо галочку з [1] і перезапустимо Tomcat:
![]() | ![]() |
Після цього відкриємо URL-адресу [http://localhost:8080] у браузері:

Ми бачимо той самий принцип роботи, що описано в розділі 5.3.4.
У наших попередніх прикладах ми використовували браузер, що не входить до складу Eclipse. Також можна використовувати вбудований у Eclipse браузер:

Вище ми вибираємо вбудований браузер. Щоб запустити його з Eclipse, можна скористатися такою піктограмою:

Фактично запуститься той браузер, який вибрано за допомогою опції [Window -> Web Browser]. У цьому випадку ми отримуємо вбудований браузер:
1

За необхідності запустимо Tomcat з Eclipse та вкажемо в [1] URL-адресу [http://localhost:8080]:

Перейдемо за посиланням [Tomcat Manager]:

Запитується пара [login / mot de passe], необхідна для доступу до додатка [manager]. Згідно з налаштуваннями Tomcat, які ми зробили раніше, можна ввести [admin / admin] або [manager / manager]. Після цього ми отримаємо список розгорнутих додатків:

5.4. SGBD — « » Firebird
5.4.1. SGBD Firebird
SGBD Firebird доступний за адресою [http://www.firebirdsql.org/]:
![]() |
- у [1]: використовується опція [Download.Firebird Relational Database]
- за посиланням [2]: вказується бажана версія Firebird
- у [3]: завантажується інсталяційний файл
Після завантаження файлу [3] потрібно двічі клацнути по ньому, щоб встановити Firebird SGBD. SGBD встановлюється в папку, вміст якої виглядає приблизно так:

Бінарні файли знаходяться у папці [bin]:

дозволяє запускати/зупиняти SGBD | |
лінійний клієнт, що дозволяє керувати базами даних |
Слід зазначити, що за замовчуванням адміністратор SGBD називається [SYSDBA], а його пароль — [masterkey]. У [Démarrer] встановлено такі меню:

Опція [Firebird Guardian] дозволяє запускати/зупиняти SGBD. Після запуску піктограма SGBD залишається на панелі завдань Windows:
![]() |
Для створення та роботи з базами даних Firebird за допомогою командного рядка [isql.exe] необхідно ознайомитися з документацією, що постачається разом із продуктом і доступна через ярлики Firebird у [Démarrer/Programmes/Firebird 2.0].
Швидким способом роботи з Firebird та вивчення мови SQL є використання графічного клієнта. Таким клієнтом є IB-Expert, описаний у наступному параграфі.
5.4.2. Робота з SGBD Firebird за допомогою IB- Expert
Головний сайт IB-Expert — [http://www.ibexpert.com/].
![]() |
![]() |
- у [1] виберіть IBExpert
- на [2] слід вибрати завантаження, попередньо вибравши мову за бажанням
- у [3] слід вибрати так звану «особисту» версію, оскільки вона безкоштовна. Проте необхідно зареєструватися на сайті.
- у [4] завантажується IBExpert
IBExpert встановлюється у папку, подібну до такої:

Виконуваний файл — [ibexpert.exe]. Зазвичай у меню [Démarrer] є ярлик:

Після запуску IBExpert відображає таке вікно:

Скористаємося опцією [Database/Create Database] « » для створення бази даних:

може бути [local] або [remote]. У цьому випадку наш сервер розташований на тій самій машині, що й [IBExpert]. Вибираємо [local] | |
використовуємо кнопку типу [dossier] у списку, щоб вказати файл бази даних. Firebird об’єднує всю базу даних в один файл. Це одна з її переваг. Базу даних можна перенести з одного комп’ютера на інший, просто скопіювавши файл. Суфікс [.fdb] додається автоматично. | |
SYSDBA — це адміністратор за замовчуванням у поточних дистрибутивах Firebird | |
masterkey — це пароль адміністратора SYSDBA для Firebird | |
діалект SQL, який слід використовувати | |
якщо поле відмічено, IBExpert відображатиме посилання на створену базу даних після її створення |
Якщо після натискання кнопки створення [OK] з’являється таке попередження:

це означає, що ви не запустили Firebird. Запустіть його. З’явиться нове вікно:

Сімейство шрифтів, яке слід використовувати. Рекомендується вибрати у випадаючому списку сімейство [ISO-8859-1], що дозволяє використовувати латинські символи з діакритичними знаками. |
[IBExpert] здатний обробляти різні SGBD, похідні від Interbase. Виберіть версію Firebird, яку ви встановили. |
Після підтвердження цього нового вікна за допомогою [Register] у вікні [Database Explorer] з’являється результат [1]. Це вікно можна випадково закрити. Щоб знову його відкрити, виконайте [2]:
![]() |
Щоб отримати доступ до створеної бази даних, достатньо двічі клацнути на її посилання. IBExpert відобразить дерево, що надає доступ до властивостей бази даних:

5.4.3. Створення таблиці даних
Створимо таблицю. Клацніть правою кнопкою миші на [Tables] (див. вікно вище) і виберіть опцію [New Table]. З’явиться вікно налаштування властивостей таблиці:
![]() |
Почнемо з того, що дамо таблиці ім’я [ARTICLES], скориставшись полем введення [1]:

Скористаємося полем введення [2], щоб визначити первинний ключ [ID]:

Поле можна зробити первинним ключем, двічі клацнувши на полі [PK] (Primary Key). Додамо поля за допомогою кнопки, розташованої над [3]:

Доки ми не «скомпілювали» наше визначення, таблиця не створюється. Скористаємося кнопкою [Compile] вище, щоб завершити визначення таблиці. IBExpert готує запити SQL для створення таблиці та запитує підтвердження:

Цікаво, що IBExpert відображає запити SQL, які він виконав. Це дозволяє вивчити не тільки мову SQL, але й діалект SQL, який, можливо, є пропрієтарним. Кнопка [Commit] дозволяє підтвердити поточну транзакцію, а [Rollback] — скасувати її. Тут ми підтверджуємо її за допомогою [Commit]. Після цього IBExpert додає створену таблицю до дерева нашої бази даних:

Двічі клацнувши на таблиці, ми отримуємо доступ до її властивостей:

Панель [Constraints] дозволяє додати до таблиці нові обмеження цілісності. Відкриємо її:

Тут ми бачимо обмеження первинного ключа, яке ми створили. Можна додати й інші обмеження:
- зовнішні ключі [Foreign Keys]
- обмеження цілісності полів [Checks]
- обмеження унікальності полів [Uniques]
Зазначимо, що:
- поля [ID, PRIX, STOCKACTUEL, STOKMINIMUM] повинні бути >0
- поле [NOM] має бути непорожнім та унікальним
Відкриємо панель [Checks] і клацнемо правою кнопкою миші в області визначення обмежень, щоб додати нове обмеження:

Визначимо необхідні обмеження:

Зверніть увагу, що в обмеженні [NOM<>''] використовуються дві апострофи, а не лапки. Скомпілюємо ці обмеження за допомогою кнопки [Compile] вище:

І тут знову IBExpert демонструє свою навчальну функцію, вказуючи запити SQL, які він виконав. Тепер перейдемо до панелі [Constraints/Uniques], щоб вказати, що ім’я має бути унікальним. Це означає, що в таблиці не може бути двох однакових імен.

Визначимо обмеження:

Потім скомпілюємо його. Після цього відкриємо панель [DDL] (Data Definition Language) таблиці [ARTICLES]:

Вона надає код SQL для генерації таблиці з усіма її обмеженнями. Цей код можна зберегти у скрипті, щоб виконати його пізніше:
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CREATE TABLE ARTICLES (
ID INTEGER NOT NULL,
NOM VARCHAR(20) NOT NULL,
PRIX DOUBLE PRECISION NOT NULL,
STOCKACTUEL INTEGER NOT NULL,
STOCKMINIMUM INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);
5.4.4. Введення даних у таблицю
Тепер настав час внести дані в таблицю [ARTICLES]. Для цього скористаємося її панеллю [Data]:

Дані вводяться подвійним клацанням миші на полях введення кожного рядка таблиці. Новий рядок додається за допомогою кнопки [+], а рядок видаляється за допомогою кнопки [-]. Ці операції виконуються в рамках транзакції, яка підтверджується кнопкою [Commit Transaction] (див. вище). Без цього підтвердження дані будуть втрачені.
5.4.5. Редактор SQL від [IB-Expert]
Мова SQL (Structured Query Language) дозволяє користувачеві:
- створювати таблиці, вказуючи тип даних, які в них будуть зберігатися, та обмеження, яким ці дані повинні відповідати
- вводити в них дані
- змінювати деякі з них
- видаляти інші
- використовувати їхній вміст для отримання інформації
- ...
IBExpert дозволяє користувачеві виконувати операції з 1 по 4 у графічному режимі. Ми щойно це побачили. Коли база даних містить багато таблиць, кожна з яких має сотні рядків, потрібна інформація, яку важко отримати візуально. Припустимо, наприклад, що віртуальний інтернет-магазин має тисячі покупців на місяць. Усі покупки реєструються в базі даних. Через шість місяців виявляється, що товар «X» має дефект. Потрібно зв’язатися з усіма, хто його придбав, щоб вони повернули товар для безкоштовного обміну. Як знайти адреси цих покупців?
- Можна візуально переглянути всі таблиці та відшукати цих покупців. На це знадобиться кілька годин.
- Можна виконати запит SQL, який за лічені секунди надасть список цих осіб
Мова SQL стає корисною,
- як обсяг даних у таблицях є значним
- коли є багато таблиць, пов’язаних між собою
- інформація, яку потрібно отримати, розподілена між кількома таблицями
- ...
Тепер ми представляємо редактор SQL від IBExpert. Доступ до нього можна отримати через опцію [Tools/SQL Editor] або [F12]:

Після цього ми отримаємо доступ до розширеного редактора запитів SQL, за допомогою якого можна експериментувати із запитами. Введемо запит:

Виконуємо запит SQL за допомогою кнопки [Execute], розташованої вище. Отримуємо такий результат:

Вище на вкладці [Results] відображається таблиця результатів запиту SQL [Select]. Щоб відправити нове замовлення SQL, достатньо повернутися на вкладку [Edit]. Там ми бачимо замовлення SQL, яке вже було виконано.

Деякі кнопки на панелі інструментів є корисними:
- кнопка [New Query] дозволяє перейти до нового запиту SQL:

У результаті з’являється порожня сторінка редагування:

Тепер можна ввести нове замовлення SQL:

та виконати його:

Повернемося до вкладки [Edit]. Різні видані накази SQL зберігаються в [IBExpert]. Кнопка [Previous Query] дозволяє повернутися до раніше виданого замовлення SQL:

Після цього відбувається повернення до попереднього запиту:

Кнопка [Next Query] дозволяє перейти до наступного замовлення SQL:

Тоді ми бачимо замовлення SQL, яке йде наступним у списку збережених замовлень SQL:

Кнопка [Delete Query] дозволяє видалити замовлення SQL зі списку збережених замовлень:

Кнопка [Clear Current Query] дозволяє очистити вміст редактора для відображеного замовлення SQL:

Кнопка [Commit] дозволяє остаточно підтвердити зміни, внесені до бази даних:

Кнопка [RollBack] дозволяє скасувати зміни, внесені до бази даних після останнього натискання кнопки [Commit]. Якщо з моменту підключення до бази даних не було натиснуто кнопку [Commit], то скасовуються зміни, внесені саме під час цього сеансу підключення.

Розглянемо приклад. Вставимо новий рядок у таблицю:

Команда SQL виконується, але нічого не відображається. Невідомо, чи відбулося вставлення. Щоб це з’ясувати, виконаємо команду SQL після [New Query]:

Отримуємо [Execute] такий результат:

Отже, рядок було успішно вставлено. Тепер розглянемо вміст таблиці іншим способом. Двічі клацнімо на таблиці [ARTICLES] у браузері баз даних:

Ми отримуємо таку таблицю:

Кнопка зі стрілкою, показана вище, дозволяє оновити таблицю. Після оновлення таблиця, показана вище, не змінюється. Складається враження, що новий рядок не був вставлений. Повернемося до редактора SQL (F12), а потім підтвердимо замовлення SQL, сформоване за допомогою кнопки [Commit]:

Зробивши це, повернімося до таблиці [ARTICLES]. Ми бачимо, що нічого не змінилося навіть після натискання кнопки [Refresh]:

Тепер відкриємо вкладку [Fields], а потім повернемося до вкладки [Data]. Цього разу вставлений рядок відображається правильно:

Коли починається виконання різних команд SQL, редактор відкриває так звану транзакцію в базі даних. Зміни, внесені цими командами SQL редактора SQL, будуть видимі лише доти, доки ви залишаєтеся в тому самому редакторі SQL (можна відкрити кілька редакторів). Все відбувається так, ніби редактор SQL працює не з реальною базою даних, а з власною копією. Насправді це відбувається не зовсім так, але така метафора може допомогти нам зрозуміти поняття транзакції. Усі зміни, внесені до копії під час транзакції, стануть видимими в реальній базі даних лише після їхнього підтвердження за допомогою [Commit Transaction]. Після цього поточна транзакція завершується, і починається нова.
Зміни, внесені під час транзакції, можна скасувати за допомогою операції під назвою [Rollback]. Проведемо такий експеримент. Почнемо нову транзакцію (достатньо виконати [Commit] у поточній транзакції) із таким наказом SQL:

Виконаємо цю команду, яка видаляє всі рядки з таблиці [ARTICLES], а потім виконаємо [New Query] — нову команду SQL:

Отримуємо такий результат:

Усі рядки було видалено. Нагадаємо, що це було зроблено на копії таблиці [ARTICLES]. Щоб це перевірити, двічі клацнімо на таблиці [ARTICLES] нижче:

і переглянемо вкладку [Data]:

Навіть якщо натиснути кнопку [Refresh] або перейти на вкладку [Fields], а потім повернутися на вкладку [Data], наведений вище вміст не змінюється. Це вже було пояснено. Ми перебуваємо в іншій транзакції, яка працює з власною копією. Тепер повернімося до редактора SQL (F12) і скористаймося кнопкою [RollBack], щоб скасувати видалення рядків, які було здійснено:

Нам пропонується підтвердити:

Підтверджуємо. Редактор SQL підтверджує, що зміни скасовано:

Для перевірки повторімо вищезазначений запит SQL. Ми бачимо рядки, які були видалені:

Операція [Rollback] повернула копію, з якою працює редактор SQL, до стану, в якому вона перебувала на початку транзакції.
5.4.6. Експорт бази даних Firebird у скрипт SQL
Під час роботи з різними SGBD, як це відбувається в підручнику «Практичне застосування персистентності в Java 5», корисно мати можливість експортувати базу даних із SGBD 1 у скрипт SQL, щоб потім імпортувати цей скрипт у SGBD 2. Це дозволяє уникнути низки ручних операцій. Однак це не завжди можливо, оскільки файли SGBD часто мають власні розширення SQL.
Покажемо, як експортувати попередню базу даних [dbarticles] у скрипт SQL:
![]() |
- у [1]: «Інструменти» / «Витягнути MetaData», щоб витягнути метадані
- у [2]: вкладка «Метаоб’єкти»
- у [3]: вибрати таблицю [Articles], структуру (метадані) якої потрібно витягти
- у [4]: щоб перемістити об’єкт, вибраний ліворуч, праворуч
![]() |
- у [5]: таблиця [ARTICLES] увійде до витягнутих метаданих
- в [6]: вкладка [Table de données] служить для вибору таблиць, вміст яких потрібно витягти (на попередньому етапі експортувалася структура таблиці)
- у [7]: щоб перемістити об’єкт, вибраний ліворуч, праворуч
- в [8]: отриманий результат
![]() |
- у [9]: вкладка [Options] дозволяє налаштувати певні параметри вилучення
- у [10]: знімаємо галочки з опцій, пов’язаних із генерацією команд SQL, що дозволяють підключитися до бази даних. Вони є власними для Firebird і тому нас не цікавлять.
- у [11]: на вкладці [Sortie] можна вказати, де буде згенеровано скрипт SQL
- у [12]: вказується, що скрипт має бути згенерований у файлі
- у [13]: вказується розташування цього файлу
- у [14]: запускається генерація скрипта SQL
Створений скрипт, очищений від коментарів, має такий вигляд:
Примітка: рядки 1–2 характерні для Firebird. Їх потрібно видалити зі згенерованого скрипта, щоб отримати універсальний SQL.
5.4.7. Драйвер Firebird « » JDBC
Програма Java отримує доступ до даних бази даних через драйвер JDBC, що є специфічним для використовуваного SGBD:
![]() |
У багаторівневій архітектурі, як показано вище, драйвер JDBC [1] використовується рівнем [dao] (об’єкт доступу до даних) для доступу до даних бази даних.
Драйвер JDBC для Firebird доступний за адресою, з якої було завантажено Firebird:
![]() |
![]() |
- у [1]: слід завантажити драйвер JDBC
- у [2]: вибираємо драйвер JDBC, сумісний з JDK 1.5
- для [3]: архів, що містить драйвер JDBC, має назву [jaybird-full-2.1.1.jar]. Розпакуємо цей файл. Він буде використовуватися для всіх прикладів JPA з Firebird.
Ми розмістимо його в папці, яку надалі називатимемо <jdbc>:

Щоб перевірити цей драйвер JDBC, ми скористаємося Eclipse та плагіном SQL Explorer (розділ 5.2.6). Почнемо з оголошення драйвера JDBC для Firebird:
![]() |
- у [1]: перейдіть у меню «Window» / «Preferences»
- в [2]: виберіть опцію «SQL Explorer» / «JDBC Drivers»
- у [3]: вибрати драйвер JDBC для Firebird
- у [4]: перейти до етапу налаштування
- у [5]: перейдіть на вкладку [Extra Class Path]
- за допомогою [6] вказати файл драйвера JDBC. Після цього він з’явиться у [7]. Тут слід вибрати драйвер, попередньо розміщений у папці <jdbc>
- у [8]: ім'я Java-класу драйвера JDBC. Його можна отримати за допомогою кнопки [8b].
- виконуємо команду [OK] для підтвердження конфігурації
![]() |
- у [9]: драйвер JDBC для Firebird тепер налаштований. Можна переходити до його використання.
![]() |
- на [1]: відкрити нову перспективу
- в [2]: вибрати перспективу [SQL Explorer]
![]() |
- в [3]: створити нове з’єднання
- в [4]: присвоїти йому ім’я
- у [5]: вибрати з випадаючого списку драйвер JDBC для Firebird
- в [6]: вказати URL-адресу бази даних, до якої потрібно підключитися, у даному випадку: [jdbc:firebirdsql:localhost/3050:C:\data\2006-2007\eclipse\dvp-jpa\annexes\jpa\jpa.fdb]. [jpa.fdb] — це база даних, створена раніше за допомогою IBExpert.
- у [7]: ім’я користувача для підключення, у даному випадку [sysdba] — адміністратор Firebird
- у [8]: його пароль [masterkey]
- підтверджуємо налаштування з’єднання за допомогою [OK]
![]() |
- у [1]: двічі клацаємо на назві з’єднання, яке хочемо відкрити
- у [2]: входимо в систему (sysdba, masterkey)
- у [3]: з'єднання відкрито
- у [4]: відображається структура бази даних. У ній видно таблицю [ARTICLES]. Виберіть її.
![]() |
- у [5]: у вікні [Database Detail] відображаються деталі вибраного об’єкта у [4], тут — таблиця [ARTICLES]
- у [6]: на вкладці [Columns] відображається структура таблиці
- у [7]: вкладка [Preview] показує структуру таблиці
У вікні [SQL Editor] можна створювати запити SQL:
![]() |
- у вікні [1]: вибрати відкрите з’єднання
- у [2]: ввести команду SQL для виконання
- у [3]: виконати його
- в [4]: перегляд виконаної команди
- у [5]: його результат
5.5. SGBD — MySQL5
5.5.1. Встановлення
SGBD MySQL5 доступний за адресою [http://dev.mysql.com/downloads/]:
![]() |
- у [1]: виберіть потрібну версію
- за посиланням [2]: виберіть версію для Windows
![]() |
- на [3]: виберіть потрібну версію Windows
- у [4]: завантажений zip-файл містить виконуваний файл [Setup.exe] [4b], який потрібно розпакувати та запустити для встановлення MySQL5
![]() |
- у [5]: виберіть «Типову інсталяцію»
- у [6]: після завершення встановлення можна налаштувати сервер MySQL5
![]() |
- в [7]: вибрати стандартну конфігурацію, яка вимагає найменше запитань
- у [8]: сервер MySQL5 буде службою Windows
![]() |
- в [9]: за замовчуванням адміністратором сервера є користувач root без пароля. Можна залишити цю конфігурацію або призначити root новий пароль. Якщо встановлення MySQL5 відбувається після видалення попередньої версії, ця операція може завершитися невдачею. Повернутися до попереднього стану буде складніше.
- у [10]: запитується конфігурація сервера
Встановлення MySQL5 створює папку в [Démarrer / Programmes ]:

Для переконфігурації сервера можна використати [MySQL Server Instance Config Wizard]:
![]() |
![]() |
![]() |
- на [3]: змінюємо пароль користувача root (тут root/root)
5.5.2. Запуск / Зупинка MySQL5
Сервер MySQL5 було встановлено як службу Windows з автоматичним запуском, c.a.d запускається одразу після запуску Windows. Такий режим роботи є малопрактичним. Ми змінимо його:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- на [1]: двічі клацаємо на [Services]
- на [2]: бачимо, що існує служба з назвою [MySQL], що вона запущена ([3]) і що її запуск відбувається автоматично ([4]).
Щоб змінити ці налаштування, двічі клацніть на службі [MySQL]:
![]() |
- на [1]: встановлюємо ручний запуск служби
- на [2]: зупиняємо його
- на [3]: підтверджуємо нову конфігурацію служби
Щоб вручну запустити та зупинити службу MySQL, можна створити два ярлики:
![]() |
- у [1]: ярлик для запуску MySQL5
- [2] — ярлик для його зупинки
5.5.3. Клієнти для адміністрування MySQL
На сайті MySQL можна знайти клієнти для адміністрування SGBD:
![]() |
- у [1]: вибрати [MySQL GUI Tools], який об’єднує різні графічні клієнти, що дозволяють або адмініструвати SGBD, або використовувати його
- у [2]: виберіть відповідну версію для Windows
![]() |
- у [3]: завантажте файл .msi для запуску
- в [4]: після завершення встановлення у папці [Menu Démarrer / Programmes / mySQL] з’являться нові ярлики.
Запустимо MySQL (через ярлики, які ви створили), а потім запустимо [MySQL Administrator] через меню вище:
![]() |
- у [1]: введіть пароль користувача root (тут — root)
- у [2]: ми увійшли в систему і бачимо, що MySQL активний
5.5.4. Створення користувача jpa та бази даних jpa
У цьому посібнику використовується MySQL5 із базою даних під назвою jpa та користувачем з такою самою назвою. Тепер ми їх створимо. Спочатку користувача:
![]() |
- у [1]: вибираємо [User Administration]
- в [2]: клацаємо правою кнопкою миші в області [User accounts], щоб створити нового користувача
- у [3]: користувач називається jpa, а його пароль — jpa
- у [4]: підтверджуємо створення
- у [5]: користувач [jpa] з’являється у вікні [User Accounts]
Тепер база даних:
![]() |
- у [1]: вибір опції [Catalogs]
- у [2]: клацніть правою кнопкою миші на вікні [Schemata], щоб створити нову схему (позначає базу даних)
- в [3]: присвоюємо назву новій схемі
- у [4]: вона з’являється у вікні [Schemata]
![]() |
- у [5]: вибираємо схему [jpa]
- у [6]: з’являються об’єкти схеми [jpa], зокрема таблиці. Їх ще немає. Клацнувши правою кнопкою миші, можна створити їх. Ми залишаємо це завдання читачеві.
Повернемося до користувача [jpa], щоб надати йому всі права на схему [jpa]:
![]() |
- у [1], а потім у [2]: вибираємо користувача [jpa]
- в [3]: вибираємо вкладку [Schema Privileges]
- у [4]: вибираємо схему [jpa]
- у [5]: надамо користувачеві [jpa] усі права на схему [jpa]
![]() |
- в [6]: підтверджуємо внесені зміни
Щоб перевірити, чи користувач [jpa] може працювати зі схемою [jpa], закриваємо адміністратора MySQL. Запускаємо його знову і цього разу входимо під ім’ям [jpa/jpa]:
![]() |
- у [1]: входимо (jpa/jpa)
- у [2]: підключення відбулося успішно, і в [Schemata] ми бачимо схеми, до яких маємо права. Ми бачимо схему [jpa].
Тепер ми створимо ту саму таблицю [ARTICLES], що й у випадку з Firebird SGBD, використовуючи скрипт SQL [schema-articles.sql], згенерований у розділі 5.4.6.
![]() |
- у [1]: використовуйте програму [MySQL Query Browser]
- у [2], [3], [4]: авторизуватися (jpa / jpa / jpa)
![]() |
- в [5]: відкрити скрипт SQL для його виконання
- у [6]: вказати скрипт [schema-articles.sql], створений у розділі 5.4.6.
![]() |
- в [7]: завантажений скрипт
- в [8]: його виконують
- в [9]: створено таблицю [ARTICLES]
5.5.5. Драйвер JDBC від MySQL5
Драйвер JDBC з MySQL можна завантажити з того самого місця, що й SGBD:
![]() |
![]() |
- у [1]: виберіть відповідний драйвер JDBC
- у [2]: виберіть відповідну версію для Windows
- у [3]: у завантаженому zip-файлі архів Java, що містить драйвер JDBC, має назву [mysql-connector-java-5.0.5-bin.jar]. Його потрібно розпакувати, щоб використовувати у прикладах підручника JPA.
Ми розміщуємо його так само, як і попередній (параграф 5.4.7) у папці <jdbc>:
![]() |
Для тестування цього драйвера JDBC ми будемо використовувати Eclipse та плагін SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, описаної в розділі 5.4.7. Наводимо кілька показових знімків екрана:
![]() |
- у [1]: ми вказали архів драйвера JDBC з MySQL5
- у [2]: драйвер JDBC з MySQL5 доступний
![]() |
- в [3]: визначення з'єднання (user, password)=(jpa, jpa)
- у [4]: з'єднання активне
- [5]: підключена база даних
5.6. SGBD PostgreSQL
5.6.1. Встановлення
SGBD PostgreSQL доступний за посиланням [http://www.postgresql.org/download/]:
![]() |
- у [1]: сайти для завантаження PostgreSQL
- у [2]: вибрати версію для Windows
- у [3]: вибір версії з інсталятором
![]() |
- в [4]: вміст завантаженого zip-файлу. Двічі клацніть на файлі [postgresql-8.2.msi]
- в [5]: перша сторінка майстра встановлення
![]() |
- в [6]: вибір типової інсталяції з прийняттям значень за замовчуванням
- в [6b]: створення облікового запису Windows, який запускатиме службу PostgreSQL; тут це обліковий запис pgres із паролем pgres.
![]() |
- en [7]: дозволити PostgreSQL створити обліковий запис [pgres], якщо він ще не існує
- у [8]: визначити обліковий запис адміністратора для SGBD, у даному випадку postgres з паролем postgres
![]() |
- у [9] та [10]: прийняти значення за замовчуванням до кінця роботи майстра. PostgreSQL буде встановлено.
В результаті встановлення PostgreSQL у [Démarrer / Programmes ] створюється папка:

5.6.2. Запуск / Зупинка PostgreSQL
Сервер PostgreSQL було встановлено як службу Windows з автоматичним запуском, c.a.d запускається одразу після запуску Windows. Такий режим роботи є малопрактичним. Ми змінимо його:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- на [1]: двічі клацаємо на [Services]
- на [2]: бачимо, що існує служба з назвою [PostgreSQL], що вона запущена ([3]) і що її запуск відбувається автоматично ([4]).
Щоб змінити ці налаштування, двічі клацніть на службі [PostgreSQL]:
![]() |
- на [1]: встановлюємо ручний запуск служби
- на [2]: зупиняємо його
- на [3]: підтверджуємо нову конфігурацію служби
Щоб вручну запустити та зупинити службу PostgreSQL, можна скористатися ярликами з папки [PostgreSQL]:
![]() |
- в [1]: ярлик для запуску PostgreSQL
- у [2]: ярлик для його зупинки
5.6.3. Управління PostgreSQL
На знімку екрана вище програма [pgAdmin III] (3) дозволяє керувати SGBD та PostgreSQL. Запустимо SGBD, а потім [pgAdmin III] за допомогою меню, показаного вище:
![]() |
- у [1]: двічі клацніть на сервері PostgreSQL, щоб підключитися до нього
- на [2,3]: увійти як адміністратор сервера SGBD, тут (postgres / postgres)
![]() |
- на [4]: єдина існуюча база даних
- у [5]: єдиний існуючий користувач
5.6.4. Створення користувача jpa та бази даних jpa
У цьому посібнику використовується PostgreSQL із базою даних під назвою jpa та користувачем з такою самою назвою. Тепер ми їх створимо. Спочатку користувача:
![]() |
- у [1]: створюємо нову роль (~користувач)
- у [2]: створення користувача jpa
- в [3]: його пароль — jpa
- у [4]: повторюємо пароль
- у [5]: надано користувачеві право створювати бази даних
- у [6]: користувач [jpa] з’являється серед ролей входу
Тепер база даних:
![]() |
- у [1]: створюється нове з’єднання з сервером
- у [2]: вона називатиметься jpa
- [3]: комп’ютер, до якого потрібно підключитися
- в [4]: користувач, який підключається
- en [5]: його пароль. Підтверджуємо налаштування з'єднання за допомогою [OK]
- у [6]: нове з'єднання створено. Воно належить користувачеві jpa. Тепер він створить нову базу даних:
![]() |
- n [1]: додаємо нову базу
- в [2]: її ім'я — jpa
- en [3]: її власником є раніше створений користувач jpa. Підтверджуємо за допомогою [OK]
- у [4]: база даних jpa була створена. Один клік по ній підключає нас до неї та дозволяє ознайомитися з її структурою:
![]() |
- en [5]: з’являються об’єкти схеми [jpa], зокрема таблиці. Поки що їх немає. Правий клік дозволить створити їх. Ми залишаємо це на розсуд читача.
Тепер ми створимо ту саму таблицю [ARTICLES], що й у попередньому прикладі з SGBD, використовуючи скрипт SQL [schema-articles.sql], згенерований у розділі 5.4.6.
![]() |
- у [1]: відкрити редактор SQL
- в [2]: відкрити скрипт SQL
- у [3]: вказати скрипт [schema-articles.sql], створений у пункті 5.4.6.
![]() |
- в [4]: скрипт завантажено. Його виконують.
- в [5]: створено таблицю [ARTICLES].
- у [6, 7]: його вміст
5.6.5. Драйвер JDBC для PostgreSQL
Драйвер JDBC для PostgreSQL доступний у папці [jdbc] інсталяційної папки PostgreSQL:
![]() |
Ми розміщуємо архів Jdbc, як і попередні (параграф 5.4.7), у папці <jdbc>:
![]() |
Для тестування цього драйвера JDBC ми будемо використовувати Eclipse та плагін SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, описаної в розділі 5.4.7. Наводимо кілька показових знімків екрана:
![]() |
- у [1]: ми вказали архів драйвера JDBC з PostgreSQL
- у [2]: драйвер JDBC з PostgreSQL доступний
![]() |
- в [3]: визначення з'єднання (user, password)=(jpa, jpa)
- у [4]: з'єднання активне
- у [5]: підключено до бази даних
- у [6]: вміст таблиці [ARTICLES]
5.7. SGBD — Oracle 10g Express
5.7.1. Встановлення
SGBD Oracle 10g Express доступний за посиланням [http://www.oracle.com/technology/software/products/database/xe/index.html]:
![]() |
- за посиланням [1]: сайт завантаження Oracle 10g Express
- за посиланням [2]: виберіть версію для Windows. Після завантаження файлу запустіть його:
![]() |
- в [1]: двічі клацніть на файлі [OracleXE.exe]
- у [2]: перша сторінка майстра встановлення
![]() |
- в [3]: погодитися з ліцензією
- у [4]: погодитися з значеннями за замовчуванням.
![]() |
- в [5,6]: користувач SYSTEM матиме пароль system.
- в [7]: запускається інсталяція
В результаті встановлення Oracle 10g Express створюється папка в [Démarrer / Programmes ]:

5.7.2. Запуск / зупинка Oracle 10g
Як і в попередніх SGBD, Oracle 10g було встановлено як службу Windows з автоматичним запуском. Ми змінюємо цю конфігурацію:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- на [1]: двічі клацаємо на [Services]
- на [2]: бачимо, що присутня служба з назвою [OracleServiceXE], що вона запущена ([3]) і що її запуск відбувається автоматично ([4]).
- у [5]: ще одна служба Oracle під назвою «Listener» також активна та запускається автоматично.
Щоб змінити ці налаштування, двічі клацніть на службі [OracleServiceXE]:
![]() |
- у [1]: переводимо службу на ручний запуск
- на [2]: зупиняємо його
- на [3]: підтверджуємо нову конфігурацію служби
Аналогічно слід вчинити зі службою [OracleXETNSListener] (див. [5] вище). Щоб вручну запустити та зупинити службу OracleServiceXE, можна скористатися ярликами з папки [Oracle]:
![]() |
- в [1]: для запуску SGBD
- на [2]: щоб зупинити його
- на [3]: для управління (що запускає його, якщо він ще не запущений)
5.7.3. Створення користувача jpa та бази даних jpa
На знімку екрана вище програма [3] дозволяє адмініструвати SGBD Oracle 10g Express. Запустимо SGBD [1], а потім програму адміністрування [3] через меню, показане вище:
![]() |
- у [1]: увійти як адміністратор SGBD, тут (system / system)
- у [2]: створити нового користувача
![]() |
- у [4]: ім’я користувача
- у форматі [5, 6]: його пароль, у даному випадку jpa
- у [7]: користувач jpa створено
У системі Oracle користувач автоматично пов'язується з базою даних з такою самою назвою. Отже, база даних jpa існує одночасно з користувачем jpa.
5.7.4. Створення таблиці [ARTICLES] у базі даних jpa
OracleXE було встановлено разом із клієнтом SQL, що працює в командному режимі. Працювати зручніше за допомогою SQL Developer, який також надає Oracle. Його можна знайти на сайті:
[http://www.oracle.com/technology/products/database/sql_developer/index.html]
![]() |
- [1]: сайт для завантаження
- [2]: слід вибрати версію для Windows без JRE, якщо він уже встановлений (як у цьому випадку), оскільки [SQL Developer] є Java-додатком.
![]() |
- в [3]: розпакуйте завантажений zip-файл
- [4]: запустити виконуваний файл [sqldeveloper.exe]
![]() |
- в [5]: під час першого запуску [SQL Developer] вказати шлях до JRE, встановленого на комп’ютері
- у [5b]: створити нове з’єднання
![]() |
- у [6]: SQL Developer дозволяє підключатися до різних SGBD. Виберіть Oracle.
- в [7]: ім’я, яке надається з’єднанню, що створюється
- у [8]: власник з’єднання
- у [9]: його пароль (jpa)
- у полі [10]: залишити значення за замовчуванням
- в [11]: для тестування з’єднання (Oracle має бути запущено)
- у [12]: для завершення налаштування з’єднання
- в [13]: об’єкти бази jpa
- у [14]: можна створювати таблиці. Як і в попередніх випадках, ми створимо таблицю [ARTICLES] на основі скрипта, створеного в розділі 5.4.6.
![]() |
- у [15]: відкриваємо скрипт SQL
- в [16]: вказуємо скрипт SQL, створений у розділі 5.4.6.
- у [17]: скрипт, який буде виконано
![]() |
- в [18]: результат виконання: створено таблицю [ARTICLES]. Двічі клацніть на ній, щоб переглянути її властивості.
- [19]: вміст таблиці.
5.7.5. Драйвер JDBC для OracleXE
Драйвер JDBC для OracleXE знаходиться у папці [jdbc/lib] в папці інсталяції OracleXE [1]:
![]() |
Ми розміщуємо архів Jdbc [ojdbc14.jar], як і попередні (параграф 5.4.7), у папці <jdbc> [2]:
Для тестування цього драйвера JDBC ми будемо використовувати Eclipse та плагін SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, описаної в розділі 5.4.7. Наводимо кілька показових знімків екрана:
![]() |
- у [1]: вказано архів драйвера JDBC з OracleXE
- у [2]: драйвер JDBC з OracleXE доступний
![]() |
- в [3]: визначення з'єднання (user, password)=(jpa, jpa)
- у [4]: з'єднання активне
- у [5]: підключено до бази даних
- у [6]: вміст таблиці [ARTICLES]
5.8. SGBD SQL Server Express 2005
5.8.1. Встановлення
SGBD SQL Server Express 2005 доступний за адресою [http://msdn.microsoft.com/vstudio/express/sql/download/]:
![]() |
- за посиланням [1]: спочатку завантажте та встановіть платформу .NET 2.0
- за посиланням [2]: потім встановіть та завантажте SQL Server Express 2005
- у [3]: потім встановити та завантажити SQL Server Management Studio Express, що дозволяє адмініструвати SQL Server
В результаті встановлення SQL Server Express у [Démarrer / Programmes ] створюється папка:
![]() |
- у [1]: програма налаштування сервера SQL. Також дозволяє запускати/зупиняти сервер
- у [2]: програма адміністрування сервера
5.8.2. Запуск / зупинка сервера SQL
Як і в попередніх випадках з SGBD, сервер SQL Express було встановлено як службу Windows з автоматичним запуском. Ми змінюємо цю конфігурацію:
[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:
![]() |
- на [1]: двічі клацаємо на [Services]
- у [2]: бачимо, що присутня служба з назвою [SQL Server], що вона запущена ([3]) і що її запуск відбувається автоматично ([4]).
- у [5]: ще одна служба, пов’язана з SQL Server, під назвою «SQL Server Browser», також активна та запускається автоматично.
Щоб змінити ці налаштування, двічі клацніть на службі [SQL Server]:
![]() |
- на [1]: встановлюємо ручний запуск служби
- на [2]: зупиняємо його
- на [3]: підтверджуємо нову конфігурацію служби
Аналогічно слід вчинити зі службою [SQL Server Browser] (див. [5] вище). Щоб вручну запустити та зупинити службу SQL server, можна скористатися програмою [1] із папки [SQL server]:
![]() |
![]() |
- у [1]: переконайтеся, що протокол TCP/IP увімкнено (enabled), а потім перейдіть до властивостей протоколу.
- у [2]: на вкладці [IP Addresses], опція [IPAll]:
- поле [TCP Dynamic ports] залишається порожнім
- порт прослуховування сервера встановлено на 1433 у [TCP Port]
![]() |
- у [3]: клацнувши правою кнопкою миші на службі [SQL Server], можна отримати доступ до опцій запуску/зупинки сервера. Тут ми запускаємо його.
- у [4]: сервер SQL запущено
5.8.3. Створення користувача jpa та бази даних jpa
Запустимо SGBD, як зазначено вище, а потім адміністративну програму [1] через меню, показане нижче:
![]() |
![]() |
- у [1]: підключаємося до сервера SQL як адміністратор Windows
- у [2]: налаштовуємо параметри з’єднання
![]() |
- в [3]: вмикаємо змішаний режим підключення до сервера: або за допомогою логіна Windows (користувача Windows), або за допомогою логіна сервера SQL (облікового запису, створеного на сервері SQL, незалежного від будь-якого облікового запису Windows).
- у [3b]: створюється користувач сервера SQL
![]() |
- у [4]: опція [General]
- у [5]: логін
- в [6]: пароль (тут jpa)
- у [7]: опція [Server Roles]
- у [8]: користувач jpa матиме право створювати бази даних
Підтверджуємо цю конфігурацію:
![]() |
- у [9]: користувач jpa створено
- в [10]: виходимо з системи
- у [11]: повторно входимо в систему
![]() |
- в [12]: вхід під ім'ям користувача jpa/jpa
- у [13]: після входу користувач jpa створює базу даних
![]() |
- у [14]: база матиме назву jpa
- у [15]: і належатиме користувачеві jpa
- у [16]: база даних jpa створена
5.8.4. Створення таблиці [ARTICLES] у базі даних jpa
Як і в попередніх прикладах, ми створимо таблицю [ARTICLES] на основі скрипта, створеного в розділі 5.4.6.
![]() |
- у [1]: відкриваємо скрипт SQL
- в [2]: вказуємо скрипт SQL, створений у розділі 5.4.6, сторінка 240.
- у [3]: потрібно знову авторизуватися (jpa/jpa)
- в [4]: скрипт, який буде виконано
- у [5]: вибрати базу даних, у якій буде виконано скрипт
- у [6]: виконати його
![]() |
- у [7]: результат виконання: створено таблицю [ARTICLES].
- у [8]: запит на перегляд її вмісту
- у [9]: вміст таблиці.
5.8.5. Драйвер JDBC для SQL Server Express
![]() |
- у [1]: пошук у Google за текстом [Microsoft SQL Server 2005 JDBC Driver] приводить нас на сторінку завантаження драйвера JDBC. Вибираємо найновішу версію
- у форматі [2]: завантажений файл. Двічі клацаємо по ньому. Відбувається розпакування, в результаті чого створюється папка, у якій знаходиться драйвер Jdbc [3]
- у форматі [4]: розміщуємо архів Jdbc [sqljdbc.jar], як і попередні (параграф 5.4.7), у папці <jdbc>
Щоб протестувати цей драйвер JDBC, ми будемо використовувати Eclipse та плагін SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, викладеної в розділі 5.4.7. Наводимо кілька характерних знімків екрана:
![]() |
- у [1]: вказано архів драйвера JDBC із сервера SQL
- у [2]: драйвер JDBC із сервера SQL доступний
![]() |
- в [3]: визначення з'єднання (user, password)=(jpa, jpa)
- у [4]: з'єднання активне
- у [5]: підключено до бази даних
- у [6]: вміст таблиці [ARTICLES]
5.9. SGBD HSQLDB
5.9.1. Встановлення
SGBD HSQLDB доступний за адресою [http://sourceforge.net/projects/hsqldb]. Це SGBD, написаний на Java, дуже компактний у пам’яті, який керує базами даних у пам’яті, а не на диску. Результатом цього є надзвичайно висока швидкість виконання запитів. У цьому полягає його головна перевага. Створені таким чином бази даних в оперативній пам'яті можна відновити після зупинки та повторного запуску сервера. Дійсно, команди SQL, що видаються для створення баз даних, зберігаються у файлі журналу, щоб бути відтвореними під час наступного запуску сервера. Таким чином забезпечується довготривалість баз даних.
Цей метод має свої обмеження, і HSQLDB не є SGBD, призначеним для комерційного використання. Його головна цінність полягає у тестуванні або демонстраційних додатках. Наприклад, те, що HSQLDB написано на Java, дозволяє включати його в завдання Ant (Another Neat Tool) — Java-інструменту для автоматизації завдань. Таким чином, щоденні тестування коду, що перебуває на стадії розробки, автоматизовані за допомогою Ant, зможуть включати тестування баз даних, що управляються SGBD та HSQLDB. Сервер запускатиметься, зупинятиметься та управлятиметься за допомогою завдань Java.
![]() |
- у [1]: сайт для завантаження
- в [2]: завантажити найновішу версію
![]() |
- в [3]: розпакувати завантажений zip-файл
- в [4]: папка [hsqldb], отримана в результаті розпакування
- в [5]: папку [demo], яка містить скрипт для запуску сервера [hsql] [6], а також [7] — скрипт для запуску простого інструменту адміністрування сервера.
5.9.2. Запуск / зупинка HSQLDB
Щоб запустити сервер HSQLDB, потрібно двічі клацнути на програмі [runManager.bat] [6], показаній вище:
![]() |
- у [1]: бачимо, що для зупинки сервера достатньо натиснути Ctrl-C у вікні.
5.9.3. База даних [test]
База даних, що використовується за замовчуванням, знаходиться у папці [data]:
![]() |
- у [1]: під час запуску SGBD HSQL виконує скрипт під назвою [test.script]
- рядок 1: створюється схема [public]
- рядок 2: створюється користувач [sa] із порожнім паролем
- рядок 3: користувач [sa] отримує права адміністратора
У підсумку створено користувача з правами адміністратора. Саме цього користувача ми будемо використовувати надалі.
5.9.4. Драйвер JDBC від HSQL
Драйвер Jdbc для SGBD HSQL знаходиться у папці [lib]:
![]() |
- у [1]: архів [hsqldb.jar] містить драйвер JDBC для SGBD та HSQL
- у [2]: ми розміщуємо цей архів, як і попередні (параграф 5.4.7), у папці <jdbc>
Щоб перевірити цей драйвер JDBC, ми скористаємося Eclipse та плагіном SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, викладеної в розділі 5.4.7. Наводимо кілька показових знімків екрана:
![]() |
- у [1]: [window / preferences / SQL Explorer / JDBC Drivers]
- у [2]: налаштовується сервер [HSQLDB]
- на [3]: вказуємо архів [hsqldb.jar], що містить драйвер Jdbc
- у [4]: вказується ім’я Java-класу драйвера JDBC
- в [5]: драйвер JDBC налаштовано
Після цього здійснюється підключення до сервера HSQL. Його слід запустити заздалегідь.
![]() |
- у [6]: створюємо нове з’єднання
- у [7]: присвоюємо йому ім’я
- у [8]: потрібно підключитися до сервера HSQLDB
- у [9]: URL-адреса бази даних, до якої потрібно підключитися. Це буде база [test], яку ми розглядали раніше.
- у [10]: ми підключаємося як користувач [sa]. Ми бачили, що він є адміністратором SGBD.
- у [11]: користувач [sa] не має пароля.
Підтверджуємо налаштування з’єднання.
![]() |
- у [12]: здійснюємо підключення
- в [13]: відбувається аутентифікація
- в [14]: підключено
![]() |
- у [15]: схема [PUBLIC] ще не має таблиці
- в [16]: створюємо таблицю [ARTICLES] на основі скрипта [schema-articles.sql], створеного в розділі 5.4.6.
- у [17]: вибираємо скрипт
![]() |
- у [18]: скрипт, який потрібно виконати
- щодо [19]: його запускають після видалення всіх коментарів, оскільки HSQLB їх не підтримує.
![]() |
- після виконання скрипта оновлюємо у [20] відображення бази даних
- у [21]: таблиця [ARTICLES] є на місці
- у [22]: її вміст
Зупинімо, а потім перезапустимо сервер HSQLDB. Після цього переглянемо файл [test.script]:
Бачимо, що файл SGBD зберіг різні команди SQL, виконані під час попередньої сесії, і відтворює їх під час запуску нової сесії. Крім того, як видно (рядок 2), таблиця [ARTICLES] створюється в пам’яті (MEMORY). Під час кожної сесії видані команди SQL зберігаються в [test.log], щоб на початку наступної сесії бути скопійованими в [test.script] і відтвореними на початку сесії.
5.10. SGBD — -файл Apache Derby
5.10.1. Встановлення
SGBD Apache Derby доступний за адресою [http://db.apache.org/derby/]. Це SGBD, також написаний на Java і такий самий компактний у пам’яті. Він має переваги, аналогічні до HSQLDB. Його також можна вбудовувати в Java-додатки, c.a.d, де він стає невід’ємною частиною додатка та працює в тому ж JVM.
![]() |
- у [1]: сайт для завантаження
- у [2,3]: завантажте найновішу версію
![]() |
- у [3]: розпакувати завантажений zip-файл
- в [4]: папка [db-derby-*-bin], отримана в результаті розпакування
- в [5]: папку [bin], яка містить скрипт для запуску сервера [db derby] [6], а також скрипт для його зупинки — [7].
5.10.2. Запуск / зупинка Apache Derby (Db Derby)
Щоб запустити сервер Db Derby, двічі клацніть на програмі [startNetworkServer] [6], показаній вище:
![]() |
- у [1]: сервер запущено. Його можна зупинити за допомогою програми [stopNetworkServer] [7], показаної вище.
5.10.3. Драйвер JDBC для Db Derby
Драйвер JDBC для SGBD Db Derby знаходиться у папці [lib] інсталяційного каталогу:
![]() |
- у [1]: архів [derbyclient.jar] містить драйвер JDBC для SGBD Db Derby
- в [2]: цей архів ми розміщуємо, як і попередні (параграф 5.4.7), у папці <jdbc>
Щоб протестувати цей драйвер JDBC, ми будемо використовувати Eclipse та плагін SQL Explorer. Читачеві пропонується дотримуватися покрокової інструкції, описаної в розділі 5.4.7. Наводимо кілька показових знімків екрана:
![]() |
- у [1]: [window / preferences / SQL Explorer / JDBC Drivers]
- у [2]: драйвер Jdbc для Apache Derby відсутній у списку. Його додають.
![]() |
- в [3]: присвоюємо ім’я новому драйверу
- в [4]: уточнюємо формат URL-адрес, що підтримуються драйвером JDBC
- у [5]: вказано архів .jar драйвера JDBC
- у [5b]: назва класу Java драйвера JDBC
- у [5c]: драйвер JDBC налаштовано
Після цього підключаємося до сервера Apache Derby. Його слід запустити заздалегідь.
![]() |
- у [6]: створюємо нове з’єднання
- у [7]: присвоюємо йому ім’я
- у [8]: намагаємося підключитися до сервера Apache Derby
- у [9]: URL-адреса бази даних, до якої потрібно підключитися. Після стандартного початку [jdbc:derby://localhost:1527] вказується шлях до папки на диску, що містить базу даних Derby. Параметр [create=true] дозволяє створити цю папку, якщо її ще немає.
- en [10,11]: підключення здійснюється під ім’ям користувача [jpa/jpa]. Я не досліджував це питання докладно, але, схоже, можна вказати будь-які логін та пароль. Тут вказується власник бази даних, якщо create=true.
Підтверджуємо налаштування з’єднання.
![]() |
- у [12]: підключаємося
- у [13]: авторизуємося (jpa/jpa)
- у [14]: підключено
![]() |
- у [15]: схема [jpa] ще не з’являється.
- у [16]: створюємо таблицю [ARTICLES] на основі скрипта [schema-articles.sql], створеного в розділі 5.4.6.
- у [17]: вибираємо скрипт
![]() |
- у [18]: скрипт для виконання
- у [19]: його виконують після видалення всіх коментарів, оскільки Apache Derby, як і HSQLB, їх не підтримує.
![]() |
- після виконання скрипта оновлюємо в [20] відображення бази даних
- у [21]: схема [jpa] і таблиця [ARTICLES] є на місці
- у [22]: вміст таблиці [ARTICLES]
![]() |
- у [23]: вміст папки [derby\jpa], у якій було створено базу даних.
5.11. Фреймворк Spring 2
Фреймворк Spring 2 доступний за адресою [http://www.springframework.org/download]:
![]() |
- у [1]: завантажується остання версія
- у [2]: завантажуємо версію, так звану «з залежностями», оскільки вона містить .jar-архіви сторонніх інструментів, які інтегрує Spring і які нам постійно потрібні.
![]() |
- у [3]: розпакуйте завантажений архів
- en [4]: папка інсталяції Spring 2.1
![]() |
- в [5]: у папці <dist> знаходяться архіви Spring. Архів [spring.jar] містить усі класи фреймворку Spring. Вони також доступні за модулями в папці <modules> в [6]. Якщо відомо, які модулі потрібні, їх можна знайти саме тут. Таким чином можна уникнути включення в додаток архівів, які йому не потрібні.
![]() |
- у [7]: папка <lib> містить архіви сторонніх інструментів, які використовує Spring
- у [8]: деякі архіви проєкту [jakarta-commons]
Коли в посібнику використовуються архіви Spring, їх потрібно шукати або в папці <dist>, або в папці <lib> інсталяційного каталогу Spring.
5.12. Контейнер EJB3 від JBoss
Контейнер EJB3 з JBoss доступний за адресою [http://labs.jboss.com/jbossejb3/downloads/embeddableEJB3]:
![]() |
- у [1]: завантажуються JBoss та EJB3. Можна звернути увагу на дату випуску продукту (вересень 2006 року), тоді як завантаження відбувається у травні 2007 року. Виникає питання, чи продовжує цей продукт розвиватися.
- у [2]: завантажений файл
![]() |
- у [3]: розпакований zip-файл
- у [4]: архіви [hibernate-all.jar, jboss-ejb3-all.jar, thirdparty-all.jar] утворюють контейнер EJB3 з JBoss. Їх потрібно додати до classpath додатка, що використовує цей контейнер.








































































































































































