Skip to content

5. Załączniki

Opisujemy tutaj instalację i podstawowe korzystanie z narzędzi wykorzystanych w dokumencie „Trwałość danych w Javie 5 w praktyce”. Informacje podane poniżej są aktualne na maj 2007 r. Wkrótce staną się nieaktualne. Gdy tak się stanie, czytelnik będzie musiał postępować w podobny sposób, choć kroki te nie będą identyczne. Instalacje przeprowadzono na komputerze z systemem Windows XP Professional.

5.1. Java

Będziemy korzystać z najnowszej wersji Javy dostępnej na stronie firmy Sun [http://www.sun.com]. Pliki do pobrania są dostępne pod adresem URL [http://java.sun.com/javase/downloads/index.jsp]:

Image

Image

Uruchom instalację JDK z pobranego pliku. Domyślnie Java jest instalowana w [C:\Program Files\Java]:

Image

5.2. Eclipse

5.2.1. Instalacja podstawowa

Eclipse to program o numerze IDE, dostępny pod adresem [http://www.eclipse.org/], który można pobrać pod adresem [http://www.eclipse.org/downloads/]. Poniżej udostępniamy plik do pobrania Eclipse 3.2.2:

Image

Po pobraniu pliku ZIP należy go rozpakować do folderu na dysku:

Image

Od tej pory folder instalacyjny Eclipse, oznaczony powyżej jako [C:\devjava\eclipse 3.2.2\eclipse], będziemy nazywać <eclipse>. [eclipse.exe] to plik wykonywalny, a [eclipse.ini] to jego plik konfiguracyjny. Przyjrzyjmy się zawartości tego ostatniego:

1
2
3
-vmargs
-Xms40m
-Xmx256m

Argumenty te są używane podczas uruchamiania programu Eclipse w następujący sposób:

eclipse.exe -vmargs -Xms40m -Xmx256m

Osiągamy ten sam wynik, co w przypadku pliku .ini, tworząc skrót, który uruchamia Eclipse z tymi samymi argumentami. Wyjaśnijmy je:

  1. -vmargs: wskazuje, że kolejne argumenty są przeznaczone dla wirtualnej maszyny Java, która będzie uruchamiać Eclipse. Eclipse jest aplikacją Java.
  2. -Xms40m: ?
  3. -Xmx256m: ustala rozmiar pamięci w MB przydzielony dla maszyny wirtualnej Java (JVM), która uruchamia Eclipse. Domyślnie rozmiar ten wynosi 256 MB, jak pokazano tutaj. Jeśli sprzęt na to pozwala, zalecane jest 512 MB.

Argumenty te są przekazywane do JVM, który uruchamia Eclipse. JVM jest reprezentowany przez plik [java.exe] lub [javaw.exe]. Jak ten plik jest lokalizowany? W rzeczywistości jest on wyszukiwany na różne sposoby:

  • w pliku PATH należącym do OS
  • w folderze <JAVA_HOME>/jre/bin, gdzie JAVA_HOME jest zmienną systemową określającą katalog główny pliku JDK.
  • w lokalizacji przekazanej jako argument do Eclipse w postaci -vm <ścieżka>\javaw.exe

To ostatnie rozwiązanie jest preferowane, ponieważ pozostałe dwa są podatne na nieprzewidziane skutki późniejszych instalacji aplikacji, które mogą albo zmienić ścieżkę PATH w OS, albo zmienić zmienną JAVA_HOME.

Tworzymy zatem następujący skrót:

Image

cible
<eclipse>\eclipse.exe" -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m
Démarrer dans
folder instalacyjny Eclipse <eclipse>

Po wykonaniu tych czynności uruchommy Eclipse za pomocą tego skrótu. Pojawi się pierwsze okno dialogowe:

Image

[workspace] to obszar roboczy. Przyjmijmy proponowane wartości domyślne. Domyślnie projekty Eclipse będą tworzone w folderze <workspace> określonym w tym oknie dialogowym. Istnieje sposób na obejście tego zachowania. Będziemy to robić systematycznie. Dlatego odpowiedź udzielona w tym oknie dialogowym nie ma znaczenia.

Po zakończeniu tego etapu wyświetla się środowisko programistyczne Eclipse:

Image

Zamykamy widok [Welcome] zgodnie z powyższą sugestią:

Image

Przed utworzeniem projektu Java skonfigurujemy Eclipse tak, aby wskazać JDK jako narzędzie do kompilacji projektów Java. W tym celu wybieramy opcję [Window / Preferences / Java / Installed JREs ]:

Image

Zazwyczaj JRE (Java Runtime Environment), który został użyty do uruchomienia samego Eclipse, powinien znajdować się na liście JRE. Zazwyczaj będzie to jedyna pozycja. Możliwe jest dodanie elementów JRE za pomocą przycisku [Add]. Należy wówczas wskazać katalog główny pliku JRE. Z kolei przycisk [Search] uruchamia wyszukiwanie pliku JREs na dysku. Jest to dobry sposób na sprawdzenie, które pliki JREs zostały zainstalowane, a następnie zapomniane o ich odinstalowaniu przy przejściu na nowszą wersję. Powyżej zaznaczony plik JRE jest tym, który będzie używany do kompilacji i uruchamiania projektów Java. Jest to ten sam plik, który został zainstalowany w punkcie 5.1 i który posłużył również do uruchomienia programu Eclipse. Dwukrotne kliknięcie na nim daje dostęp do jego właściwości:

Image

Teraz utwórzmy projekt Java o nazwie [File / New / Project]:

Wybierz [Java Project], a następnie [Next] ->

Image

W [2] wskazujemy pusty folder, w którym zostanie zainstalowany projekt Java. W [1] nadajemy nazwę projektowi. Nie musi on nosić nazwy folderu, jak mogłoby to sugerować powyższe przykład. Po wykonaniu tych czynności używamy przycisku [Next], aby przejść do następnej strony kreatora:

Image

Powyżej tworzymy specjalny folder w projekcie, aby przechowywać w nim pliki źródłowe (.java):

Image

  • w [1] widzimy folder [src], w którym będą przechowywane pliki źródłowe .java
  • w [2] widzimy folder [bin], w którym będą przechowywane skompilowane pliki .class

Zakończyliśmy pracę z kreatorem, uzyskując plik [Finish]. Mamy teraz szkielet projektu Java:

Image

Kliknijmy prawym przyciskiem myszy na projekt [test1], aby utworzyć klasę Java:

Image

  1. w [1], czyli folderze, w którym zostanie utworzona klasa. Eclipse domyślnie proponuje folder bieżącego projektu.
  2. w [2] – pakiet, w którym zostanie umieszczona klasa
  3. w [3] – nazwa klasy
  4. w [4] żądamy wygenerowania metody statycznej [main]

Potwierdzamy działanie kreatora za pomocą [Finish]. Projekt zostaje wówczas wzbogacony o klasę:

Image

Eclipse wygenerowało szkielet klasy. Można go wyświetlić, klikając dwukrotnie powyższy element [Test1.java]:

Image

Modyfikujemy powyższy kod w następujący sposób:

Image

Uruchamiamy program [Test1.java]: [clic droit sur Test1.java -> Run As -> Java Application]

Image

Wynik uruchomienia jest widoczny w oknie [Console]:

Image

Okno [Console] powinno pojawić się domyślnie. Jeśli tak się nie stało, można wyświetlić je za pomocą [Window/Show View/Console]:

Image

5.2.2. Wybór kompilatora

Eclipse umożliwia generowanie kodu zgodnego z Java 1.4, Java 1.5 i Java 1.6. Domyślnie jest skonfigurowany do generowania kodu zgodnego z Java 1.4. API i JPA wymagają kodu zgodnego z Java 1.5. Zmieniamy typ generowanego kodu przez [Window / Preferences / Java / Compiler]:

  • na [1]: wybór opcji [Java / Compiler]
  • na [2]: wybór zgodności z Javą 5.0

5.2.3. Instalacja wtyczek Callisto

Zainstalowana powyżej wersja podstawowa pozwala na tworzenie konsolowych aplikacji Java, ale nie aplikacji internetowych ani typu Swing – w przeciwnym razie wszystko trzeba wykonać samodzielnie. Zainstalujemy różne wtyczki:

Postępujmy w następujący sposób [Help/Software Udates/Find and Install]:

  • w [2] należy zaznaczyć, że chcemy zainstalować nowe wtyczki
  • w [3] należy wskazać strony, które mają zostać przeszukane w celu znalezienia wtyczek
  • w [4] zaznacza się wybrane wtyczki
  • w [5] program Eclipse sygnalizuje, że wybrano wtyczkę, która jest zależna od innych wtyczek, które nie zostały zaznaczone
  • w [6] należy użyć przycisku [Select Required], aby automatycznie wybrać brakujące wtyczki
  • w [7] akceptuje się warunki licencji tych różnych wtyczek
  • w [8] wyświetla się lista wszystkich wtyczek, które zostaną zainstalowane
  • w [9] uruchamia się pobieranie tych wtyczek
  • w pliku [10], po ich pobraniu instaluje się je wszystkie bez sprawdzania ich podpisów
  • w [11], po zakończeniu instalacji wtyczek pozwalamy Eclipse na ponowne uruchomienie
  • w [12], jeśli wykonamy [File/New/Project], okaże się, że możemy teraz tworzyć aplikacje internetowe, co początkowo nie było możliwe.

5.2.4. Instalacja wtyczki [TestNG]

TestNG (Test Next Generation) to narzędzie do testów jednostkowych, podobne pod względem koncepcji do JUnit. Wprowadza jednak ulepszenia, które sprawiają, że w tym przypadku preferujemy je zamiast JUnit. Postępujemy tak samo jak poprzednio: [Help/Software Udates/Find and Install]:

  • w [2] należy wskazać, że chcemy zainstalować nowe wtyczki
  • w [3a] strona pobierania [TestNG] nie istnieje. Dodajemy ją za pomocą [3b]
  • w [4b]: strona wtyczki to [http://beust.com/eclipse]. W [4a] wpisujemy to, co chcemy.
  • w polu [5a] wybrano wtyczkę [TestNG] do aktualizacji. W polu [5b] uruchamia się tę aktualizację.
  • W pliku [6] nawiązano połączenie ze stroną wtyczki. Wyświetlone są wszystkie wtyczki dostępne na stronie. W tym przypadku wybieramy tylko jedną, a następnie przechodzimy do kolejnego etapu.
  • W [7] akceptujemy warunki licencji wtyczki
  • w [8] wyświetla się lista wszystkich wtyczek, które zostaną zainstalowane; wybieramy jedną z nich. Rozpoczynamy pobieranie. Następnie wszystko przebiega tak, jak opisano powyżej w przypadku wtyczek Callisto.

Po ponownym uruchomieniu Eclipse można sprawdzić obecność nowej wtyczki, na przykład wyświetlając dostępne widoki [Window / show View / Other]:

 

Jak widać powyżej, pojawił się widok [TestNG], którego wcześniej nie było.

5.2.5. Instalacja wtyczki [Hibernate Tools]

Hibernate jest dostawcą JPA, a wtyczka [Hibernate Tools] dla Eclipse jest przydatna przy tworzeniu aplikacji JPA. W maju 2007 r. jedynie najnowsza wersja (3.2.0beta9) umożliwia pracę z Hibernate/JPA, a nie jest ona dostępna za pośrednictwem opisanego powyżej mechanizmu. Dostępne są jedynie starsze wersje. Postąpimy zatem inaczej.

Wtyczka jest dostępna na stronie Hibernate Tools: http://tools.hibernate.org/.

  • w [1], wybieramy najnowszą wersję Hibernate Tools
  • w [2], pobieramy ją
  • w [3], za pomocą programu do rozpakowywania plików rozpakowujemy pobrany plik zip do folderu <eclipse> (najlepiej, aby program Eclipse nie był uruchomiony)
  • w pliku [4] należy zaakceptować nadpisanie niektórych plików podczas tej operacji

Uruchamiamy ponownie program Eclipse:

  • w [1]: otwieramy perspektywę
  • w [2]: istnieje teraz perspektywa [Hibernate Console]

Nie będziemy kontynuować pracy z wtyczką [Hibernate Tools] (Cancel w [2]). Sposób jej użycia wyjaśniono w przykładach zawartych w samouczku.

Czasami Eclipse nie wykrywa obecności nowych wtyczek. Można wymusić ponowne skanowanie wszystkich wtyczek za pomocą opcji -clean. W ten sposób plik wykonywalny skrótu Eclipse zostałby zmodyfikowany w następujący sposób:


"<eclipse>\eclipse.exe" -clean -vm "C:\Program Files\Java\jre1.6.0_01\bin\javaw.exe" -vmargs -Xms40m -Xmx512m

Gdy Eclipse wykryje nowe wtyczki, należy usunąć powyższą opcję -clean.

5.2.6. Instalacja wtyczki [SQL Explorer]

Teraz zainstalujemy wtyczkę, która pozwoli nam przeglądać zawartość bazy danych bezpośrednio z poziomu programu Eclipse. Dostępne wtyczki dla programu Eclipse można znaleźć na stronie [http://eclipse-plugins.2y.net/eclipse/plugins.jsp]:

  • na stronie [1]: strona wtyczek Eclipse
  • na stronie [2]: wybierz kategorię [Database]
  • w [3]: w kategorii [Database] wybierz wyświetlanie według rankingu (mało wiarygodne ze względu na niewielką liczbę głosujących)
  • w [4]: QuantumDB zajmuje pierwsze miejsce
  • w [5]: wybieramy SQLExplorer, starszą wersję, gorzej ocenianą (3. miejsce), ale i tak bardzo dobrą. Przechodzimy na stronę wtyczki [plugin-homepage]
  • w [6] i [7]: przystępujemy do pobrania wtyczki.
  • oraz [8]: rozpakowujemy plik ZIP wtyczki do folderu Eclipse.

Aby to sprawdzić, uruchom ponownie Eclipse, ewentualnie z opcją -clean:

  • w [1]: otwórz nową perspektywę
  • w [2]: widać, że dostępna jest perspektywa [SQL Explorer]. Wrócimy do tego później.

5.3. Kontener serwletów Tomcat 5.5

5.3.1. Instalacja

Aby uruchamiać serwlety, potrzebujemy kontenera serwletów. Przedstawiamy tutaj jeden z nich, Tomcat 5.5, dostępny pod adresem http://tomcat.apache.org/. Opisujemy procedurę (maj 2007 r.) jego instalacji. Jeśli poprzednia wersja Tomcata jest już zainstalowana, zaleca się jej wcześniejsze usunięcie.

Image

Aby pobrać produkt, należy kliknąć powyższy link [Tomcat 5.x]:

Image

Należy pobrać plik .exe przeznaczony dla platformy Windows. Po pobraniu pliku należy uruchomić instalację Tomcata, klikając na niego dwukrotnie:

Image

Należy zaakceptować warunki licencji ->

Image

Wykonaj [next] ->

Image

Zaakceptuj proponowany katalog instalacyjny lub zmień go za pomocą [Browse] ->

Image

Ustaw login i hasło administratora serwera Tomcat. Tutaj wprowadzono [admin / admin] ->

Tomcat 5.x wymaga wersji JRE 1.5. Zazwyczaj powinien on znaleźć wersję zainstalowaną na Państwa komputerze. Powyżej wskazano ścieżkę do pliku JRE 1.6 pobranego w punkcie 5.1. Jeśli nie zostanie znaleziony żaden plik JRE, należy wskazać jego katalog główny za pomocą przycisku [1]. Po wykonaniu tej czynności należy użyć przycisku [Install], aby zainstalować Tomcat 5.x ->

Image

Przycisk [Finish] kończy instalację. Obecność serwera Tomcat jest sygnalizowana ikoną po prawej stronie paska zadań systemu Windows:

Image

Kliknięcie prawym przyciskiem myszy na tę ikonę umożliwia dostęp do poleceń uruchamiania i wyłączania serwera:

Image

Aby teraz zatrzymać serwer WWW, używamy opcji [Stop service]:

Image

Zwróć uwagę na zmianę stanu ikony. Ikona ta może zostać usunięta z paska zadań:

Image

Instalacja serwera Tomcat odbyła się w folderze wybranym przez użytkownika, który odtąd będziemy nazywać <tomcat>. Struktura tego folderu dla pobranej wersji Tomcat 5.5.23 wygląda następująco:

Image

Instalacja serwera Tomcat spowodowała dodanie kilku skrótów do menu [Démarrer]. Korzystamy z poniższego linku [Monitor], aby uruchomić narzędzie do zatrzymywania i uruchamiania serwera Tomcat:

Image

Pojawia się wtedy ikona przedstawiona wcześniej:

Image

Monitor Tomcat można uruchomić, klikając dwukrotnie tę ikonę:

Image

Przyciski [Start - Stop - Pause] – Restart pozwalają nam uruchomić, zatrzymać i ponownie uruchomić serwer. Uruchamiamy serwer za pomocą przycisku [Start], a następnie w przeglądarce wpisujemy adres http://localhost:8080. Powinna pojawić się strona podobna do poniższej:

Image

Można skorzystać z poniższych linków, aby sprawdzić, czy Tomcat został poprawnie zainstalowany:

Image

Wszystkie linki na stronie [http://localhost:8080] są interesujące i zachęcamy czytelnika do ich przeglądania. Będziemy mieli okazję powrócić do linków umożliwiających zarządzanie aplikacjami internetowymi wdrożonymi na serwerze:

Image

5.3.2. Wdrażanie aplikacji internetowej na serwerze Tomcat

5.3.3. Wdrażanie

Aby aplikacja internetowa mogła zostać wdrożona w kontenerze serwletów, musi spełniać określone zasady. Niech <webapp> będzie katalogiem aplikacji internetowej. Aplikacja internetowa składa się z:

classes
w folderze <webapp>\WEB-INF\classes
archives java
w folderze <webapp>\WEB-INF\lib
vues, ressources (.jsp, .html, ...)
w folderze <webapp> lub w podfolderach

Aplikacja internetowa jest konfigurowana za pomocą pliku XML: <webapp>\WEB-INF\web.xml. Plik ten nie jest konieczny w prostych przypadkach, zwłaszcza gdy aplikacja internetowa zawiera wyłącznie pliki statyczne. Utwórzmy następujący plik HTML:

<html>
    <head>
      <title>Application exemple</title>
  </head>
  <body>
      Application exemple active ....
  </body>
</html>

i zapiszmy go w folderze:

Image

Jeśli załadujemy ten plik w przeglądarce, otrzymamy następującą stronę:

Image

Kod źródłowy wyświetlany przez przeglądarkę pokazuje, że strona nie została dostarczona przez serwer WWW, lecz została załadowana bezpośrednio przez przeglądarkę. Chcemy teraz, aby była ona dostępna za pośrednictwem serwera WWW Tomcat.

Wróćmy do struktury katalogów <tomcat>:

Image

Konfiguracja aplikacji internetowych wdrożonych na serwerze Tomcat odbywa się za pomocą plików XML umieszczonych w folderze [<tomcat>\conf\Catalina\localhost]:

Pliki XML można utworzyć ręcznie, ponieważ mają prostą strukturę. Zamiast jednak stosować tę metodę, skorzystamy z narzędzi internetowych oferowanych przez serwer Tomcat.

5.3.4. Administracja serwerem Tomcat

Na stronie startowej http://localhost:8080 serwer udostępnia linki umożliwiające jego administrowanie:

Image

Link [Tomcat Administration] umożliwia konfigurację zasobów udostępnianych przez Tomcat wdrożonym w nim aplikacjom internetowym, na przykład puli połączeń z bazą danych. Kliknijmy ten link:

Image

Wyświetlona strona informuje nas, że do administrowania serwerem Tomcat 5.x wymagany jest specjalny pakiet o nazwie „admin”. Wróćmy na stronę serwera Tomcat [http://tomcat.apache.org/download-55.cgi]:

Image

Pobierzmy plik ZIP o nazwie [Administration Web Application], a następnie rozpakujmy go. Jego zawartość jest następująca:

Image

Folder [admin] należy skopiować do folderu [<tomcat>\server\webapps], gdzie <tomcat> to folder, w którym zainstalowano Tomcat 5.x:

Image

Folder [localhost] zawiera plik [admin.xml], który należy skopiować do folderu [<tomcat>\conf\Catalina\localhost]:

Image

Zatrzymajmy, a następnie uruchommy ponownie serwer Tomcat, jeśli był aktywny. Następnie w przeglądarce ponownie wywołajmy stronę startową serwera WWW:

Image

Kliknijmy link [Tomcat Administration]. Pojawi się strona logowania (aby ją wyświetlić, może być konieczne odświeżenie strony):

W tym miejscu należy ponownie wprowadzić dane podane podczas instalacji serwera Tomcat. W naszym przypadku podajemy parę login/hasło admin / admin. Przycisk [Login] przenosi nas do następnej strony:

Image

Ta strona umożliwia administratorowi serwera Tomcat zdefiniowanie

  • źródła danych (Data Sources),
  • informacje niezbędne do wysyłania wiadomości e-mail (Mail Sessions),
  • dane środowiskowe dostępne dla wszystkich aplikacji (Environment Entries),
  • zarządzać użytkownikami/administratorami serwera Tomcat (Users),
  • zarządzać grupami użytkowników (Groups),
  • definiowanie ról (= co użytkownik może, a czego nie może robić),
  • definiowanie właściwości aplikacji internetowych wdrożonych przez serwer (Service Catalina)

Kliknijmy powyższy link [Roles]:

Image

Rola pozwala określić, co może, a czego nie może robić użytkownik lub grupa użytkowników. Z rolą wiążą się określone uprawnienia. Każdy użytkownik jest przypisany do jednej lub kilku ról i dysponuje uprawnieniami z nich wynikającymi. Poniższa rola [manager] przyznaje uprawnienia do zarządzania aplikacjami internetowymi wdrożonymi w Tomcat (wdrażanie, uruchamianie, zatrzymywanie, wyładowywanie). Utworzymy użytkownika o nazwie [manager], którego przypiszemy do roli [manager], aby umożliwić mu zarządzanie aplikacjami w Tomcat. W tym celu klikamy link [Users] na stronie administracyjnej:

Image

Widzimy, że istnieje już pewna liczba użytkowników. Korzystamy z opcji [Create New User], aby utworzyć nowego użytkownika:

Image

Użytkownikowi o nazwie „manager” nadajemy hasło „manager” i przypisujemy mu rolę „manager”. Korzystamy z przycisku [Save], aby zatwierdzić to dodanie. Nowy użytkownik pojawia się na liście użytkowników:

Image

Ten nowy użytkownik zostanie dodany do pliku [<tomcat>\conf\tomcat-users.xml]:

Image

którego zawartość jest następująca:

<?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>
  • wiersz 10: utworzony użytkownik [manager]

Innym sposobem dodawania użytkowników jest bezpośrednia edycja tego pliku. Należy tak postąpić zwłaszcza w przypadku, gdy przypadkiem zapomniano hasła administratora „admin” lub menedżera.

5.3.5. Zarządzanie wdrożonymi aplikacjami internetowymi

Wróćmy teraz do strony logowania [http://localhost:8080] i kliknijmy link [Tomcat Manager]:

Image

Pojawia się wówczas strona uwierzytelniania. Logujemy się jako manager / manager, c.a.d – użytkownik z rolą [manager], którego właśnie utworzyliśmy. Tylko użytkownik posiadający tę rolę może bowiem skorzystać z tego linku. W wierszu 11 rekordu [tomcat-users.xml] widzimy, że użytkownik [admin] posiada również rolę [manager]. Moglibyśmy zatem skorzystać również z uwierzytelniania [admin / admin].

Image

Otrzymujemy stronę zawierającą listę aplikacji obecnie wdrożonych w Tomcat:

Image

Możemy dodać nową aplikację za pomocą formularzy znajdujących się na dole strony:

Image

W tym przypadku chcemy wdrożyć w serwerze Tomcat przykładową aplikację, którą stworzyliśmy wcześniej. Robimy to w następujący sposób:

Image

Context Path
/przykład
nazwa używana do określenia aplikacji internetowej
, która ma zostać wdrożona
Directory URL
C:\data\praca\2006-2007\eclipse\dvp-jpa\załączniki\tomcat\przykład
folder aplikacji internetowej

Aby uzyskać plik [C:\data\travail\2006-2007\eclipse\dvp-jpa\annexes\tomcat\exemple\exemple.html], poprosimy Tomcat o pliki URL i [http://localhost:8080/exemple/exemple.html]. Kontekst służy do nadania nazwy katalogowi głównemu drzewa katalogów wdrożonej aplikacji internetowej. Używamy przycisku [Deploy], aby przeprowadzić wdrożenie aplikacji. Jeśli wszystko przebiegnie pomyślnie, otrzymamy następującą stronę odpowiedzi:

Image

a nowa aplikacja pojawia się na liście wdrożonych aplikacji:

Omówmy powyższy wiersz z kontekstu /example:

/exemple
link do strony http://localhost:8080/exemple
Démarrer
umożliwia uruchomienie aplikacji
Arrêter
umożliwia zamknięcie aplikacji
Recharger
umożliwia ponowne załadowanie aplikacji. Jest to konieczne na przykład w przypadku dodania,
zmodyfikowano lub usunięto niektóre klasy w aplikacji.
Undeploy
usunięcie kontekstu [/exemple]. Aplikacja znika z listy
dostępnych aplikacji.

Teraz, gdy nasza aplikacja /exemple została wdrożona, możemy przeprowadzić kilka testów. Wywołujemy stronę [exemple.html] za pomocą adresu URL [http://localhost:8080/exemple/vues/exemple.html]:

Image

Innym sposobem wdrożenia aplikacji internetowej na serwerze Tomcat jest umieszczenie informacji, które podaliśmy za pośrednictwem interfejsu internetowego, w pliku [contexte].xml umieszczonym w folderze [<tomcat>\conf\Catalina\localhost], gdzie [contexte] to nazwa aplikacji internetowej.

Wróćmy do interfejsu administracyjnego serwera Tomcat:

Image

Usuńmy aplikację [/exemple] wraz z jej linkiem [Undeploy]:

Image

Aplikacja [/exemple] nie znajduje się już na liście aktywnych aplikacji. Teraz zdefiniujmy następujący plik [exemple.xml]:

<Context docBase="C:/data/travail/2006-2007/eclipse/dvp-jpa/annexes/tomcat/exemple">
</Context>

Plik XML składa się z pojedynczego tagu <Context>, którego atrybut docBase określa katalog zawierający aplikację internetową, która ma zostać wdrożona. Umieśćmy ten plik w katalogu <tomcat>\conf\Catalina\localhost:

Image

W razie potrzeby zatrzymajmy i uruchommy ponownie Tomcat, a następnie wyświetlmy listę aktywnych aplikacji za pomocą menedżera Tomcat:

Image

Aplikacja [/exemple] jest widoczna. W przeglądarce wpiszmy adres URL:

[http://localhost:8080/exemple/exemple.html]:

Image

Tak wdrożoną aplikację internetową można usunąć z listy wdrożonych aplikacji w taki sam sposób jak poprzednio, korzystając z linku [Undeploy]:

Image

W takim przypadku plik [exemple.xml] jest automatycznie usuwany z folderu [<tomcat>\conf\Catalina\localhost].

Wreszcie, aby wdrożyć aplikację internetową w środowisku Tomcat, można również zdefiniować jej kontekst w pliku [<tomcat>\conf\server.xml]. Nie będziemy jednak tutaj rozwijać tego zagadnienia.

5.3.6. Aplikacja internetowa ze stroną główną

Po wywołaniu adresu URL [http://localhost:8080/exemple/] otrzymujemy następującą odpowiedź:

Image

W niektórych starszych wersjach serwera Tomcat otrzymalibyśmy zawartość fizycznego katalogu aplikacji [/exemple].

Można sprawić, by po wywołaniu kontekstu wyświetlana była tzw. strona główna. W tym celu tworzymy plik [web.xml], który umieszczamy w folderze <przykład>\WEB-INF, gdzie <przykład> to fizyczny folder aplikacji internetowej [/exemple]. Plik ten ma następującą treść:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

  <display-name>Application Exemple</display-name>
  <description>Application web minimale</description>
    <welcome-file-list>
        <welcome-file>/exemple.html</welcome-file>
    </welcome-file-list>    
</web-app>
  • wiersze 2–5: tag główny <web-app> z atrybutami skopiowanymi i wklejonymi z pliku [web.xml] aplikacji [/admin] w Tomcat (<tomcat>/server/webapps/admin/WEB-INF/web.xml).
  • wiersz 7: nazwa wyświetlana aplikacji internetowej. Jest to nazwa dowolna, podlegająca mniejszym ograniczeniom niż nazwa kontekstu aplikacji. Można w niej umieścić na przykład spacje, co nie jest możliwe w przypadku nazwy kontekstu. Nazwa ta jest wyświetlana na przykład przez administratora Tomcata:

Image

  1. wiersz 8: opis aplikacji internetowej. Tekst ten można następnie uzyskać programowo.
  2. wiersze 9–11: lista plików powitalnych. Tag <welcome-file-list> służy do zdefiniowania listy widoków, które mają być wyświetlane, gdy klient żąda kontekstu aplikacji. Widoków może być kilka. Klientowi wyświetlany jest pierwszy znaleziony widok. W tym przypadku mamy tylko jeden: [/exemple.html]. W związku z tym, gdy klient zażąda adresu URL [/exemple], w rzeczywistości otrzyma adres URL [/exemple/exemple.html].

Zapiszmy ten plik [web.xml] w katalogu <przykład>\WEB-INF:

Image

Jeśli Tomcat nadal działa, można wymusić ponowne załadowanie aplikacji internetowej [/exemple] za pomocą linku [Recharger]:

Image

Podczas tej operacji „ponownego ładowania” Tomcat ponownie odczytuje plik [web.xml] zawarty w pliku [<exemple>\WEB-INF], o ile taki plik istnieje. W tym przypadku tak właśnie jest. Jeśli serwer Tomcat został zatrzymany, należy go ponownie uruchomić.

Za pomocą przeglądarki wywołajmy pliki URL i [http://localhost:8080/exemple/]:

Image

Mechanizm plików hostujących zadziałał.

5.3.7. Integracja serwera Tomcat z Eclipse

Teraz zintegrujemy Tomcat z Eclipse. Integracja ta umożliwia:

  • uruchamianie / zatrzymywanie serwera Tomcat z poziomu Eclipse
  • tworzyć aplikacje internetowe w Javie i uruchamiać je na Tomcacie. Integracja Eclipse z Tomcatem pozwala na śledzenie (debugowanie) działania aplikacji, w tym działania klas Java (serwletów) uruchamianych przez Tomcat.

Uruchommy Eclipse, a następnie wyświetlmy widok [Servers]:

  • w widoku [1]: Window/Show View/Other
  • w widoku [2]: wybierz widok [Servers] i wykonaj [OK]
  • w [1] pojawia się nowy widok [Servers]
  • w [2], klikamy prawym przyciskiem myszy na widoku i prosimy o utworzenie nowego serwera [New/Server]
  • w [3] wybieramy serwer [Tomcat 5.5], a następnie tworzymy [Next]
  • na [4], wskazujemy katalog instalacyjny Tomcat 5.5
  • w [5] należy zaznaczyć, że na razie nie ma żadnych projektów Eclipse/Tomcat. Następnie należy przejść do [Finish]

Dodanie serwera polega na dodaniu folderu w eksploratorze projektów Eclipse [6] oraz pojawieniu się serwera w widoku [servers] [7]:

W widoku [Servers] wyświetlane są wszystkie zadeklarowane serwery, w tym przypadku tylko serwer Tomcat 5.5, który właśnie zarejestrowaliśmy. Kliknięcie prawym przyciskiem myszy na nim zapewnia dostęp do poleceń umożliwiających uruchomienie, zatrzymanie i ponowne uruchomienie serwera:

Image

Powyżej uruchamiamy serwer. Podczas jego uruchamiania w widoku [Console] zapisywanych jest kilka wpisów dziennika:

1
2
3
4
5
6
7
8
16 mai 2007 09:51:57 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
...
16 mai 2007 09:51:57 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
...
INFO: Find registry server-registry.xml at classpath resource
16 mai 2007 09:51:58 org.apache.catalina.startup.Catalina start
INFO: Server startup in 828 ms

Zrozumienie tych logów wymaga pewnej wprawy. Na razie nie będziemy się nad tym rozwodzić. Ważne jest jednak, aby sprawdzić, czy nie sygnalizują one błędów ładowania kontekstów. W rzeczywistości po uruchomieniu serwer Tomcat / Eclipse próbuje załadować konteksty aplikacji, którymi zarządza. Załadowanie kontekstu aplikacji wiąże się z wykorzystaniem jej pliku [web.xml] oraz załadowaniem jednej lub kilku klas, które go inicjują. W tym momencie może wystąpić kilka rodzajów błędów:

  • plik [web.xml] zawiera błędy składniowe. Jest to najczęstszy błąd. Zaleca się korzystanie z narzędzia umożliwiającego sprawdzenie poprawności dokumentu XML podczas jego tworzenia.
  • nie znaleziono niektórych klas, które należy załadować. Są one wyszukiwane w plikach [WEB-INF/classes] i [WEB-INF/lib]. Zazwyczaj należy sprawdzić obecność niezbędnych klas oraz pisownię tych, które zostały zadeklarowane w pliku [web.xml].

Serwer uruchomiony z poziomu Eclipse nie ma takiej samej konfiguracji jak ten zainstalowany w punkcie 5.3. Aby się o tym przekonać, wywołajmy adres URL [http://localhost:8080] w przeglądarce:

Image

Ta odpowiedź nie oznacza, że serwer nie działa, ale że żądany zasób / nie jest dostępny. W przypadku serwera Tomcat zintegrowanego z Eclipse zasoby te będą stanowić projekty internetowe. Zobaczymy to później. Na razie zatrzymajmy serwer Tomcat:

Image

Poprzedni tryb działania można zmienić. Wróćmy do widoku [Servers] i kliknijmy dwukrotnie na serwer Tomcat, aby uzyskać dostęp do jego właściwości:

1

Pole wyboru [1] odpowiada za poprzedni tryb działania. Gdy jest zaznaczone, aplikacje internetowe opracowane w środowisku Eclipse nie są deklarowane w plikach konfiguracyjnych powiązanego serwera Tomcat, lecz w oddzielnych plikach konfiguracyjnych. W ten sposób nie mamy do dyspozycji aplikacji zdefiniowanych domyślnie na serwerze Tomcat: [admin] i [manager], które są dwoma przydatnymi aplikacjami. Dlatego odznaczamy pole wyboru [1] i ponownie uruchamiamy serwer Tomcat:

Po wykonaniu tych czynności wywołajmy adres URL [http://localhost:8080] w przeglądarce:

Image

Działa to tak, jak opisano w punkcie 5.3.4.

W poprzednich przykładach korzystaliśmy z przeglądarki spoza środowiska Eclipse. Można również użyć przeglądarki wbudowanej w Eclipse:

Image

Powyżej wybieramy przeglądarkę wewnętrzną. Aby uruchomić ją z poziomu Eclipse, można użyć następującej ikony:

Image

Rzeczywiście uruchomiona zostanie przeglądarka wybrana za pomocą opcji [Window -> Web Browser]. W tym przypadku otrzymujemy przeglądarkę wbudowaną:

1

Image

W razie potrzeby uruchommy Tomcat z poziomu Eclipse i wpiszmy w [1] adres URL [http://localhost:8080]:

Image

Kliknijmy link [Tomcat Manager]:

Image

Wymagana jest para [login / mot de passe], aby uzyskać dostęp do aplikacji [manager]. Zgodnie z konfiguracją serwera Tomcat, którą wykonaliśmy wcześniej, można wprowadzić [admin / admin] lub [manager / manager]. W ten sposób otrzymujemy listę wdrożonych aplikacji:

Image

5.4. SGBD Firebird

5.4.1. SGBD Firebird

SGBD Firebird jest dostępny pod adresem URL [http://www.firebirdsql.org/]:

  • w [1]: stosuje się opcję [Download.Firebird Relational Database]
  • w [2]: należy wskazać żądaną wersję Firebirda
  • w przypadku [3]: należy pobrać plik instalacyjny

Po pobraniu pliku [3] należy kliknąć go dwukrotnie, aby zainstalować Firebird w wersji SGBD. SGBD jest instalowany w folderze, którego zawartość wygląda mniej więcej tak:

Image

Pliki binarne znajdują się w folderze [bin]:

Image

fbguard.exe
umożliwia uruchomienie/zatrzymanie pliku SGBD
isql.exe
klient liniowy umożliwiający zarządzanie bazami danych

Należy zauważyć, że domyślnie administrator SGBD nosi nazwę [SYSDBA], a jego hasło to [masterkey]. W [Démarrer] zainstalowano następujące menu:

Image

Opcja [Firebird Guardian] pozwala uruchomić/zatrzymać SGBD. Po uruchomieniu ikona SGBD pozostaje na pasku zadań systemu Windows:

Aby tworzyć i obsługiwać bazy danych Firebird za pomocą klienta wiersza poleceń [isql.exe], należy zapoznać się z dokumentacją dołączoną do produktu, dostępną poprzez skróty Firebird w [Démarrer/Programmes/Firebird 2.0].

Szybkim sposobem na pracę z Firebirdem i naukę języka SQL jest użycie klienta graficznego. Takim klientem jest IB-Expert, opisany w następnym akapicie.

5.4.2. Praca z Firebirdem (SGBD) za pomocą IB- Expert

Główna strona serwisu IB-Expert to [http://www.ibexpert.com/].

  • w [1] należy wybrać IBExpert
  • w [2] należy wybrać opcję pobierania po ewentualnym wybraniu preferowanego języka
  • w [3] należy wybrać wersję tzw. „osobistą”, ponieważ jest ona bezpłatna. Konieczna jest jednak rejestracja na stronie.
  • w przypadku pliku [4] należy pobrać plik IBExpert

IBExpert jest instalowany w folderze podobnym do poniższego:

Image

Plik wykonywalny to [ibexpert.exe]. Skrót jest zazwyczaj dostępny w menu [Démarrer]:

Image

Po uruchomieniu program IBExpert wyświetla następujące okno:

Image

Skorzystajmy z opcji [Database/Create Database] „ ” (Utwórz bazę danych), aby utworzyć bazę danych:

Image

Server
(Serveur)
może to być [local] lub [remote]. W tym przypadku nasz serwer znajduje się na tej samej maszynie co [IBExpert]. Wybieramy
[local]
Database
(Base de données)
użyj przycisku typu [dossier] z listy rozwijanej, aby wskazać plik bazy danych. Firebird umieszcza całą
bazę w jednym pliku. To jedna z jego zalet.
Bazę danych przenosi się z jednego komputera na drugi poprzez zwykłe skopiowanie pliku.
Rozszerzenie [.fdb] jest dodawane automatycznie.
Username
SYSDBA jest domyślnym administratorem w aktualnych dystrybucjach Firebirda
Password
(Nom de l'utilisateur)
masterkey to hasło administratora SYSDBA w
Firebirda
Dialect
należy użyć dialektu SQL
Register Database
(Référencer la base de données)
jeśli pole jest zaznaczone, IBExpert wyświetli link do utworzonej bazy danych po jej utworzeniu

Jeśli po kliknięciu przycisku tworzenia [OK] pojawi się następujący komunikat ostrzegawczy:

Image

oznacza to, że nie uruchomiono programu Firebird. Należy go uruchomić. Pojawi się nowe okno:

Image

Charset
(Jeu de caractères)
Rodzina czcionek do użycia. Zaleca się wybranie z listy rozwijanej rodziny
[ISO-8859-1], która umożliwia stosowanie znaków łacińskich z akcentami.
Server version
(Version du serveur)
[IBExpert] obsługuje różne wersje SGBD pochodzące z Interbase.
Należy wybrać zainstalowaną wersję Firebirda.

Po zatwierdzeniu tego nowego okna przez [Register] otrzymujemy wynik [1] w oknie [Database Explorer]. Okno to może zostać przypadkowo zamknięte. Aby je ponownie wyświetlić, należy wykonać [2]:

Aby uzyskać dostęp do utworzonej bazy danych, wystarczy dwukrotnie kliknąć jej link. IBExpert wyświetla wówczas drzewo folderów, umożliwiające dostęp do właściwości bazy danych:

Image

5.4.3. Tworzenie tabeli danych

Utwórzmy tabelę. Klikamy prawym przyciskiem myszy na [Tables] (patrz okno powyżej) i wybieramy opcję [New Table]. Pojawi się okno definiowania właściwości tabeli:

Zacznijmy od nadania tabeli nazwy [ARTICLES], korzystając z pola wprowadzania danych [1]:

Image

W polu wprowadzania danych [2] zdefiniujmy klucz główny [ID]:

Image

Pole można ustawić jako klucz główny, klikając dwukrotnie pole [PK] (Primary Key) w danym polu. Dodajmy pola za pomocą przycisku znajdującego się nad polem [3]:

Image

Dopóki nie „skompilujemy” naszej definicji, tabela nie zostanie utworzona. Użyjmy przycisku [Compile] powyżej, aby zakończyć definiowanie tabeli. IBExpert przygotowuje zapytania SQL służące do wygenerowania tabeli i prosi o potwierdzenie:

Image

Co ciekawe, IBExpert wyświetla zapytania SQL, które wykonał. Pozwala to na zapoznanie się zarówno z językiem SQL, jak i z ewentualnie stosowanym, zastrzeżonym dialektem SQL. Przycisk [Commit] służy do zatwierdzenia bieżącej transakcji, a [Rollback] – do jej anulowania. W tym przypadku akceptujemy ją za pomocą [Commit]. Po wykonaniu tej czynności IBExpert dodaje utworzoną tabelę do struktury drzewa naszej bazy danych:

Image

Po dwukrotnym kliknięciu na tabelę uzyskujemy dostęp do jej właściwości:

Image

Panel [Constraints] pozwala nam dodać nowe ograniczenia integralności do tabeli. Otwórzmy go:

Image

Widzimy tu utworzone przez nas ograniczenie klucza głównego. Można dodać inne ograniczenia:

  • klucze obce [Foreign Keys]
  • ograniczenia integralności pól [Checks]
  • ograniczenia unikalności pól [Uniques]

Należy zaznaczyć, że:

  • pola [ID, PRIX, STOCKACTUEL, STOKMINIMUM] muszą być większe od 0
  • pole [NOM] musi być niepuste i unikalne

Otwórzmy panel [Checks] i kliknijmy prawym przyciskiem myszy w obszarze definiowania ograniczeń, aby dodać nowe ograniczenie:

Image

Zdefiniujmy żądane ograniczenia:

Image

Należy zauważyć, że w powyższym przykładzie ograniczenie [NOM<>''] wykorzystuje dwa apostrofy, a nie cudzysłowy. Skompilujmy te ograniczenia za pomocą przycisku [Compile] powyżej:

Image

Również w tym przypadku IBExpert pełni funkcję edukacyjną, wskazując zapytania SQL, które wykonał. Przejdźmy teraz do panelu [Constraints/Uniques], aby zaznaczyć, że nazwa musi być unikalna. Oznacza to, że w tabeli nie może występować dwukrotnie ta sama nazwa.

Image

Zdefiniujmy ograniczenie:

Image

Następnie skompilujmy ją. Po zakończeniu otwórzmy panel [DDL] (Data Definition Language) tabeli [ARTICLES]:

Image

Z panelu tego otrzymujemy kod SQL służący do wygenerowania tabeli wraz ze wszystkimi jej ograniczeniami. Kod ten można zapisać w skrypcie, aby móc go później ponownie uruchomić:

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. Wprowadzanie danych do tabeli

Nadszedł czas, aby wprowadzić dane do tabeli [ARTICLES]. W tym celu skorzystajmy z jej panelu [Data]:

Image

Dane wprowadza się poprzez dwukrotne kliknięcie pól wprowadzania danych w każdym wierszu tabeli. Nowy wiersz dodaje się za pomocą przycisku [+], a wiersz usuwa się za pomocą przycisku [-]. Operacje te są wykonywane w ramach transakcji, którą zatwierdza się przyciskiem [Commit Transaction] (patrz powyżej). Bez tego zatwierdzenia dane zostaną utracone.

5.4.5. Edytor SQL dla [IB-Expert]

Język SQL (Structured Query Language) umożliwia użytkownikowi:

  1. tworzyć tabele, określając typ danych, które będą w nich przechowywane, oraz ograniczenia, które dane te muszą spełniać
  2. wstawianie do nich danych
  3. modyfikować niektóre z nich
  4. usuwanie niektórych danych
  5. wykorzystywać zawartość tabel w celu uzyskania informacji
  6. ...

IBExpert umożliwia użytkownikowi wykonywanie czynności od 1 do 4 w sposób graficzny. Właśnie to widzieliśmy. Gdy baza zawiera wiele tabel, z których każda ma setki wierszy, potrzebne są informacje trudne do uzyskania wizualnie. Załóżmy na przykład, że wirtualny sklep internetowy ma tysiące kupujących miesięcznie. Wszystkie zakupy są rejestrowane w bazie danych. Po sześciu miesiącach okazuje się, że produkt „X” ma wadę. Chcemy skontaktować się ze wszystkimi osobami, które go kupiły, aby zwróciły produkt w celu bezpłatnej wymiany. Jak znaleźć adresy tych kupujących?

  1. Można przejrzeć wszystkie tabele i ręcznie wyszukać tych klientów. Zajmie to kilka godzin.
  2. Można wygenerować polecenie SQL, które w ciągu kilku sekund wygeneruje listę tych osób

Język SQL jest przydatny już

  • gdy ilość danych w tabelach jest duża
  • gdy istnieje wiele powiązanych ze sobą tabel
  • gdy informacje, które chcemy uzyskać, są rozproszone w wielu tabelach
  • ...

Przedstawiamy teraz edytor SQL z pakietu IBExpert. Dostęp do niego można uzyskać za pomocą opcji [Tools/SQL Editor] lub [F12]:

Image

Otrzymujemy wówczas dostęp do zaawansowanego edytora zapytań SQL, za pomocą którego można testować zapytania. Wpiszmy zapytanie:

Image

Wykonujemy zapytanie SQL za pomocą przycisku [Execute] znajdującego się powyżej. Otrzymujemy następujący wynik:

Image

Powyżej zakładka [Results] przedstawia tabelę wyników zlecenia SQL [Select]. Aby złożyć nowe zlecenie SQL, wystarczy powrócić do zakładki [Edit]. Znajdziemy tam wówczas zlecenie SQL, które zostało już zrealizowane.

Image

Przydatnych jest kilka przycisków na pasku narzędzi:

  • przycisk [New Query] pozwala przejść do nowego zapytania SQL:

Image

Pojawia się wtedy pusta strona edycji:

Image

Można wtedy wprowadzić nowe zlecenie SQL:

Image

i zrealizować go:

Image

Wróćmy do zakładki [Edit]. Poszczególne zlecenia SQL są zapisywane przez [IBExpert]. Przycisk [Previous Query] pozwala powrócić do wcześniej wydanego zlecenia SQL:

Image

W ten sposób powraca się do poprzedniego zapytania:

Image

Przycisk [Next Query] pozwala natomiast przejść do następnego zlecenia SQL:

Image

Następnie na liście zapisanych zleceń SQL pojawia się kolejne zlecenie SQL:

Image

Przycisk [Delete Query] pozwala usunąć zlecenie SQL z listy zapisanych zleceń:

Image

Przycisk [Clear Current Query] pozwala wyczyścić zawartość edytora dla wyświetlonego zlecenia SQL:

Image

Przycisk [Commit] pozwala na ostateczne zatwierdzenie zmian wprowadzonych w bazie danych:

Image

Przycisk [RollBack] pozwala cofnąć zmiany wprowadzone w bazie od ostatniego naciśnięcia przycisku [Commit]. Jeśli od momentu połączenia z bazą nie naciśnięto przycisku [Commit], cofnięte zostaną zmiany wprowadzone od momentu tego połączenia.

Image

Weźmy przykład. Dodajmy nowy wiersz do tabeli:

Image

Polecenie SQL zostało wykonane, ale nie pojawił się żaden wynik. Nie wiadomo, czy wstawienie się powiodło. Aby to sprawdzić, wykonajmy polecenie SQL następujące po [New Query]:

Image

Otrzymujemy następujący wynik [Execute]:

Image

Wiersz został więc pomyślnie wstawiony. Przyjrzyjmy się teraz zawartości tabeli w inny sposób. Kliknijmy dwukrotnie na tabelę [ARTICLES] w eksploratorze baz danych:

Image

Otrzymujemy następującą tabelę:

Image

Przycisk ze strzałką powyżej pozwala odświeżyć tabelę. Po odświeżeniu powyższa tabela nie ulega zmianie. Wydaje się, że nowy wiersz nie został wstawiony. Wróćmy do edytora SQL (F12), a następnie zatwierdźmy zlecenie SQL wysłane za pomocą przycisku [Commit]:

Image

Po wykonaniu tej czynności wróćmy do tabeli [ARTICLES]. Możemy zauważyć, że nic się nie zmieniło, nawet po użyciu przycisku [Refresh]:

Image

Powyżej otwórzmy kartę [Fields], a następnie wróćmy do karty [Data]. Tym razem wstawiony wiersz wyświetla się poprawnie:

Image

Gdy rozpoczyna się wysyłanie poszczególnych poleceń SQL, edytor otwiera w bazie tzw. transakcję. Zmiany wprowadzone przez te polecenia SQL w edytorze SQL będą widoczne tylko tak długo, jak długo pozostajemy w tym samym edytorze SQL (można otworzyć kilka edytorów). Wszystko przebiega tak, jakby edytor SQL pracował nie na rzeczywistej bazie danych, ale na własnej kopii. W rzeczywistości nie dzieje się to dokładnie w ten sposób, ale ten obraz może pomóc nam zrozumieć pojęcie transakcji. Wszystkie zmiany wprowadzone w kopii w trakcie transakcji będą widoczne w rzeczywistej bazie danych dopiero po ich zatwierdzeniu za pomocą operacji [Commit Transaction]. Wówczas bieżąca transakcja zostaje zakończona i rozpoczyna się nowa transakcja.

Zmiany wprowadzone w trakcie transakcji można cofnąć za pomocą operacji o nazwie [Rollback]. Przeprowadźmy następujący eksperyment. Rozpocznijmy nową transakcję (wystarczy wykonać [Commit] na bieżącej transakcji) z następującym poleceniem SQL:

Image

Wykonajmy to polecenie, które usuwa wszystkie wiersze z tabeli [ARTICLES], a następnie wykonajmy [New Query], czyli nowe polecenie SQL o następującej treści:

Image

Otrzymujemy następujący wynik:

Image

Wszystkie wiersze zostały usunięte. Przypomnijmy, że operacja ta została przeprowadzona na kopii tabeli [ARTICLES]. Aby to sprawdzić, kliknijmy dwukrotnie na tabelę [ARTICLES] poniżej:

Image

i wyświetlmy zakładkę [Data]:

Image

Nawet po użyciu przycisku [Refresh] lub przejściu do zakładki [Fields], a następnie powrocie do zakładki [Data], powyższa zawartość pozostaje niezmieniona. Zostało to już wyjaśnione. Znajdujemy się w innej transakcji, która działa na własnej kopii. Teraz wróćmy do edytora SQL (F12) i użyjmy przycisku [RollBack], aby cofnąć usunięcia wierszy, które zostały wykonane:

Image

Zostaniemy poproszeni o potwierdzenie:

Image

Potwierdzamy. Edytor SQL potwierdza, że zmiany zostały cofnięte:

Image

W celu weryfikacji ponownie uruchomimy powyższe zapytanie SQL. Znajdujemy w nim wiersze, które zostały usunięte:

Image

Operacja [Rollback] przywróciła kopię, nad którą pracuje edytor SQL, do stanu, w jakim znajdowała się na początku transakcji.

5.4.6. Eksport bazy danych Firebird do skryptu SQL

Podczas pracy z różnymi skryptami SGBD, tak jak ma to miejsce w samouczku „Persystencja w Javie 5 w praktyce”, warto mieć możliwość wyeksportowania bazy danych z pliku SGBD 1 do skryptu SQL, aby następnie zaimportować ten skrypt do pliku SGBD 2. Pozwala to uniknąć wielu ręcznych operacji. Nie zawsze jest to jednak możliwe, ponieważ pliki SGBD często zawierają zastrzeżone rozszerzenia SQL.

Pokażmy, jak wyeksportować poprzednią bazę danych [dbarticles] do skryptu SQL:

  • do pliku [1]: Narzędzia / Wyodrębnij MetaData, aby wyodrębnić metadane
  • do pliku [2]: zakładka Metaobiekty
  • w pliku [3]: wybierz tabelę [Articles], z której chcesz wyodrębnić strukturę (metadane)
  • w [4]: w celu przeniesienia obiektu wybranego po lewej stronie na prawą stronę
  • w [5]: tabela [ARTICLES] będzie częścią wyodrębnionych metadanych
  • w [6]: zakładka [Table de données] służy do wyboru tabel, z których chcemy wyeksportować zawartość (w poprzednim kroku eksportowano strukturę tabeli)
  • w [7]: aby przenieść obiekt wybrany po lewej stronie na prawą stronę
  • w [8]: uzyskany wynik
  • w [9]: zakładka [Options] umożliwia skonfigurowanie niektórych parametrów ekstrakcji
  • w [10]: odznaczamy opcje związane z generowaniem poleceń SQL umożliwiających połączenie z bazą danych. Są one specyficzne dla Firebirda i dlatego nas nie interesują.
  • w [11]: zakładka [Sortie] pozwala określić, gdzie zostanie wygenerowany skrypt SQL
  • w [12]: określa się, że skrypt ma zostać wygenerowany w pliku
  • w [13]: określa się lokalizację tego pliku
  • w [14]: uruchamia się generowanie skryptu SQL

Wygenerowany skrypt, po usunięciu komentarzy, wygląda następująco:

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
);

INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (1, 'article1', 100, 10, 1);
INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (2, 'article2', 200, 20, 2);
INSERT INTO ARTICLES (ID, NOM, PRIX, STOCKACTUEL, STOCKMINIMUM) VALUES (3, 'article3', 300, 30, 3);

COMMIT WORK;

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);

Uwaga: wiersze 1–2 dotyczą wyłącznie Firebirda. Należy je usunąć ze wygenerowanego skryptu, aby uzyskać skrypt ogólny o nazwie SQL.

5.4.7. Sterownik Firebird JDBC

Program Java uzyskuje dostęp do danych z bazy danych za pośrednictwem sterownika JDBC właściwego dla używanego SGBD:

W architekturze wielowarstwowej, takiej jak ta przedstawiona powyżej, sterownik JDBC [1] jest wykorzystywany przez warstwę [dao] (Data Access Object) w celu uzyskania dostępu do danych z bazy danych.

Sterownik JDBC dla Firebirda jest dostępny pod adresem URL, z którego pobrano Firebirda:

  • w [1]: należy wybrać pobranie sterownika JDBC
  • w przypadku pliku [2]: należy wybrać sterownik JDBC zgodny z wersją JDK 1.5
  • w przypadku [3]: archiwum zawierające sterownik JDBC to [jaybird-full-2.1.1.jar]. Rozpakujemy ten plik. Będzie on używany we wszystkich przykładach dotyczących JPA z Firebirdem.

Umieszczamy go w folderze, który odtąd będziemy nazywać <jdbc>:

Image

Aby sprawdzić ten sterownik JDBC, użyjemy programu Eclipse oraz wtyczki SQL Explorer (punkt 5.2.6). Zaczynamy od zadeklarowania sterownika JDBC dla Firebirda:

  • w [1]: wybierz Window / Preferences
  • w [2]: wybierz opcję SQL Explorer / JDBC Drivers
  • w [3]: wybierz sterownik JDBC dla Firebirda
  • w [4]: przejść do etapu konfiguracji
  • w [5]: przejdź do zakładki [Extra Class Path]
  • w [6]: wskazać plik sterownika JDBC. Po wykonaniu tej czynności pojawi się on w [7]. W tym miejscu należy wybrać sterownik umieszczony wcześniej w folderze <jdbc>
  • w polu [8]: nazwa klasy Java sterownika JDBC. Można ją uzyskać za pomocą przycisku [8b].
  • Następnie należy kliknąć [OK], aby zatwierdzić konfigurację
  • w [9]: sterownik JDBC dla Firebirda jest teraz skonfigurowany. Można przejść do jego użytkowania.
  • na [1]: otwórz nową perspektywę
  • w [2]: wybierz perspektywę [SQL Explorer]
  • w [3]: utworzenie nowego połączenia
  • w [4]: nadaj mu nazwę
  • w [5]: wybierz ze listy rozwijanej sterownik JDBC dla Firebirda
  • w [6]: podaj adres URL bazy danych, z którą chcesz się połączyć, w tym przypadku: [jdbc:firebirdsql:localhost/3050:C:\data\2006-2007\eclipse\dvp-jpa\annexes\jpa\jpa.fdb]. [jpa.fdb] to baza danych utworzona wcześniej przy użyciu IBExpert.
  • w [7]: nazwa użytkownika logującego się, w tym przypadku [sysdba], administrator Firebirda
  • w [8]: jego hasło [masterkey]
  • potwierdzamy konfigurację połączenia za pomocą [OK]
  • w [1]: klikamy dwukrotnie nazwę połączenia, które chcemy otworzyć
  • w [2]: należy się zalogować (sysdba, masterkey)
  • w [3]: połączenie jest otwarte
  • w [4]: wyświetla się struktura bazy danych. Widoczna jest tabela [ARTICLES]. Należy ją zaznaczyć.
  • w [5]: w oknie [Database Detail] wyświetlane są szczegóły obiektu wybranego w [4], w tym przypadku tabeli [ARTICLES]
  • w [6]: zakładka [Columns] przedstawia strukturę tabeli
  • w [7]: zakładka [Preview] przedstawia strukturę tabeli

W oknie [SQL Editor] można wysyłać zapytania SQL:

  • w oknie [1]: należy wybrać otwarte połączenie
  • w oknie [2]: wpisać polecenie SQL do wykonania
  • w oknie [3]: uruchom je
  • w [4]: przypomnienie o wykonanym poleceniu
  • w [5]: wynik

5.5. SGBD uje MySQL5

5.5.1. Instalacja

SGBD MySQL5 jest dostępny pod adresem URL [http://dev.mysql.com/downloads/]:

  • w [1]: wybierz żądaną wersję
  • pod adresem [2]: wybierz wersję dla systemu Windows
  • w [3]: wybierz żądaną wersję systemu Windows
  • w [4]: pobrany plik ZIP zawiera plik wykonywalny [Setup.exe] [4b], który należy rozpakować i uruchomić w celu zainstalowania MySQL5
  • na [5]: należy wybrać instalację typową
  • w [6]: po zakończeniu instalacji można skonfigurować serwer MySQL5
  • w [7]: wybierz standardową konfigurację, która wymaga najmniej pytań
  • w [8]: serwer MySQL5 będzie usługą systemu Windows
  • w [9]: domyślnie administratorem serwera jest użytkownik root bez hasła. Można zachować tę konfigurację lub nadać nową hasło użytkownikowi root. Jeśli instalacja MySQL5 następuje po odinstalowaniu poprzedniej wersji, operacja ta może się nie powieść. W takim przypadku możliwości cofnięcia tej zmiany są ograniczone.
  • w [10]: wymagana jest konfiguracja serwera

Instalacja MySQL5 powoduje utworzenie folderu w [Démarrer / Programmes ]:

Image

Można użyć pliku [MySQL Server Instance Config Wizard] do ponownej konfiguracji serwera:

  • na [3]: zmieniamy hasło użytkownika root (tutaj root/root)

5.5.2. Uruchom / Zatrzymaj MySQL5

Serwer MySQL5 został zainstalowany jako usługa systemu Windows uruchamiana automatycznie, c.a.d uruchamia się zaraz po uruchomieniu systemu Windows. Ten tryb działania jest mało praktyczny. Zmienimy go:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • na [1]: klikamy dwukrotnie na [Services]
  • na [2]: widzimy, że istnieje usługa o nazwie [MySQL], że jest uruchomiona jako [3] oraz że jej uruchamianie jest automatyczne jako [4].

Aby zmienić to ustawienie, klikamy dwukrotnie na usługę [MySQL]:

  • na [1]: ustawiamy usługę na uruchamianie ręczne
  • na [2]: zatrzymujemy go
  • w [3]: zatwierdzamy nową konfigurację usługi

Aby ręcznie uruchomić i zatrzymać usługę MySQL, można utworzyć dwa skróty:

  • w [1]: skrót do uruchomienia MySQL5
  • [2]: skrót do zatrzymania usługi

5.5.3. Klienty administracyjne MySQL

Na stronie MySQL można znaleźć klienckie narzędzia administracyjne dla SGBD:

  • w [1]: należy wybrać [MySQL GUI Tools], który zawiera różne klienckie aplikacje graficzne umożliwiające zarówno administrowanie SGBD, jak i korzystanie z niego
  • w [2]: należy wybrać odpowiednią wersję dla systemu Windows
  • w [3]: pobieramy plik .msi do uruchomienia
  • w [4]: po zakończeniu instalacji w folderze [Menu Démarrer / Programmes / mySQL] pojawią się nowe skróty.

Uruchommy MySQL (za pomocą utworzonych skrótów), a następnie uruchommy [MySQL Administrator] z powyższego menu:

  • w [1]: wprowadź hasło użytkownika root (tutaj „root”)
  • w [2]: jesteśmy zalogowani i widzimy, że MySQL jest aktywny

5.5.4. Tworzenie użytkownika jpa i bazy danych jpa

W tym samouczku wykorzystujemy MySQL5 z bazą danych o nazwie jpa i użytkownikiem o tej samej nazwie. Teraz je utworzymy. Najpierw użytkownika:

  • w [1]: wybieramy [User Administration]
  • w [2]: klikamy prawym przyciskiem myszy w obszarze [User accounts], aby utworzyć nowego użytkownika
  • w [3]: użytkownik nazywa się jpa, a jego hasło to jpa
  • w [4]: zatwierdź utworzenie
  • w [5]: użytkownik [jpa] pojawia się w oknie [User Accounts]

A teraz baza danych:

  • w [1]: wybierz opcję [Catalogs]
  • na [2]: kliknij prawym przyciskiem myszy okno [Schemata], aby utworzyć nowy schemat (oznacza bazę danych)
  • w [3]: nadajemy nazwę nowemu schematowi
  • w [4]: pojawia się on w oknie [Schemata]
  • w [5]: wybieramy schemat [jpa]
  • w [6]: pojawiają się obiekty schematu [jpa], w szczególności tabele. Na razie ich nie ma. Kliknięcie prawym przyciskiem myszy pozwoliłoby je utworzyć. Pozostawiamy to czytelnikowi.

Wróćmy do użytkownika [jpa], aby nadać mu wszystkie uprawnienia do schematu [jpa]:

  • w [1], a następnie w [2]: wybieramy użytkownika [jpa]
  • w [3]: wybieramy zakładkę [Schema Privileges]
  • w [4]: wybieramy schemat [jpa]
  • w [5]: przyznajemy użytkownikowi [jpa] wszystkie uprawnienia do schematu [jpa]
  • do [6]: zatwierdzamy wprowadzone zmiany

Aby sprawdzić, czy użytkownik [jpa] może pracować ze schematem [jpa], zamykamy konto administratora MySQL. Uruchamiamy je ponownie i logujemy się tym razem pod nazwą [jpa/jpa]:

  • jako [1]: logujemy się (jpa/jpa)
  • jako [2]: logowanie zakończyło się powodzeniem, a w [Schemata] widoczne są schematy, do których mamy uprawnienia. Widoczny jest schemat [jpa].

Teraz utworzymy tę samą tabelę [ARTICLES], co w przypadku Firebirda SGBD, korzystając ze skryptu SQL [schema-articles.sql] wygenerowanego w punkcie 5.4.6.

  • na [1]: należy użyć aplikacji [MySQL Query Browser]
  • w [2], [3], [4]: zalogować się (jpa / jpa / jpa)
  • na [5]: otworzyć skrypt SQL w celu jego wykonania
  • w [6]: wskazać skrypt [schema-articles.sql] utworzony w punkcie 5.4.6.
  • w [7]: załadowany skrypt
  • w [8]: uruchamia się go
  • w [9]: utworzono tabelę [ARTICLES]

5.5.5. Sterownik JDBC z MySQL5

Sterownik JDBC z MySQL można pobrać z tego samego miejsca co SGBD:

  • w przypadku [1]: należy wybrać odpowiedni sterownik JDBC
  • w przypadku pliku [2]: należy pobrać odpowiednią wersję dla systemu Windows
  • w przypadku [3]: w pobranym pliku ZIP archiwum Java zawierające sterownik JDBC to [mysql-connector-java-5.0.5-bin.jar]. Należy je rozpakować, aby wykorzystać je w przykładach z samouczka JPA.

Umieszczamy go tak samo jak poprzedni (punkt 5.4.7) w folderze <jdbc>:

Aby przetestować ten sterownik JDBC, użyjemy środowiska Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Poniżej przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: wskazano archiwum sterownika JDBC z MySQL5
  • w [2]: sterownik JDBC z MySQL5 jest dostępny
  • do [3]: definicja połączenia (user, password)=(jpa, jpa)
  • w [4]: połączenie jest aktywne
  • w pliku [5]: nawiązano połączenie z bazą danych

5.6. SGBD PostgreSQL

5.6.1. Instalacja

SGBD PostgreSQL jest dostępny pod adresem URL [http://www.postgresql.org/download/]:

  • w [1]: strony z plikami do pobrania PostgreSQL
  • w [2]: wybierz wersję dla systemu Windows
  • w [3]: wybierz wersję z instalatorem
  • w [4]: zawartość pobranego pliku zip. Kliknij dwukrotnie plik [postgresql-8.2.msi]
  • w [5]: pierwsza strona kreatora instalacji
  • w [6]: wybierz instalację typową, akceptując wartości domyślne
  • w pliku [6b]: utworzenie konta systemu Windows, które uruchomi usługę PostgreSQL; w tym przypadku jest to konto pgres z hasłem pgres.
  • w [7]: pozwolić, aby PostgreSQL utworzyło konto [pgres], jeśli jeszcze nie istnieje
  • w [8]: zdefiniować konto administratora dla SGBD, w tym przypadku postgres z hasłem postgres
  • w [9] i [10]: zaakceptuj wartości domyślne aż do zakończenia pracy kreatora. Zostanie zainstalowany PostgreSQL.

Instalacja PostgreSQL powoduje utworzenie folderu w [Démarrer / Programmes ]:

Image

5.6.2. Uruchom / Zatrzymaj PostgreSQL

Serwer PostgreSQL został zainstalowany jako usługa systemu Windows uruchamiana automatycznie, a c.a.d uruchamia się zaraz po uruchomieniu systemu Windows. Ten sposób działania jest mało praktyczny. Zmienimy go:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • na [1]: klikamy dwukrotnie na [Services]
  • na [2]: widzimy, że istnieje usługa o nazwie [PostgreSQL], że jest uruchomiona ([3]) i że uruchamia się automatycznie ([4]).

Aby zmienić to ustawienie, klikamy dwukrotnie na usługę [PostgreSQL]:

  • na [1]: ustawiamy usługę na uruchamianie ręczne
  • na [2]: zatrzymujemy usługę
  • w [3]: zatwierdzamy nową konfigurację usługi

Aby ręcznie uruchomić i zatrzymać usługę PostgreSQL, można skorzystać ze skrótów znajdujących się w folderze [PostgreSQL]:

  • w [1]: skrót do uruchomienia PostgreSQL
  • w [2]: skrót do jego zamknięcia

5.6.3. Zarządzanie PostgreSQL

Na powyższym zrzucie ekranu aplikacja [pgAdmin III] (3) umożliwia zarządzanie programami SGBD i PostgreSQL. Uruchommy SGBD, a następnie [pgAdmin III] za pomocą powyższego menu:

  • w [1]: kliknij dwukrotnie serwer PostgreSQL, aby się z nim połączyć
  • na [2,3]: zalogować się jako administrator serwera SGBD, w tym przypadku (postgres / postgres)
  • w [4]: jedyna istniejąca baza danych
  • w [5]: jedyny istniejący użytkownik

5.6.4. Tworzenie użytkownika jpa i bazy danych jpa

W tym samouczku wykorzystujemy PostgreSQL z bazą danych o nazwie jpa i użytkownikiem o tej samej nazwie. Teraz je utworzymy. Najpierw użytkownika:

  • w [1]: tworzymy nową rolę (~użytkownik)
  • w pliku [2]: tworzymy użytkownika jpa
  • w [3]: jego hasło to jpa
  • w [4]: powtarzamy hasło
  • w [5]: przyznaje się użytkownikowi uprawnienia do tworzenia baz danych
  • w [6]: użytkownik [jpa] pojawia się wśród ról logowania

Teraz baza danych:

  • w [1]: tworzymy nowe połączenie z serwerem
  • w [2]: nazwa połączenia to jpa
  • w [3]: komputer, z którym chcemy się połączyć
  • w [4]: użytkownik, który się loguje
  • w [5]: jego hasło. Potwierdzamy konfigurację połączenia za pomocą [OK]
  • w [6]: nowe połączenie zostało utworzone. Należy ono do użytkownika jpa. Użytkownik ten utworzy teraz nową bazę danych:
  • n [1]: dodajemy nową bazę
  • w [2]: jej nazwa to jpa
  • w [3]: jej właścicielem jest utworzony wcześniej użytkownik jpa. Potwierdzamy w [OK]
  • w [4]: baza jpa została utworzona. Wystarczy jedno kliknięcie, aby się z nią połączyć i zapoznać się z jej strukturą:
  • w [5]: pojawiają się obiekty schematu [jpa], w szczególności tabele. Na razie ich nie ma. Kliknięcie prawym przyciskiem myszy pozwoliłoby je utworzyć. Pozostawiamy to czytelnikowi.

Teraz utworzymy tę samą tabelę [ARTICLES], co w przypadku poprzednich tabel SGBD, korzystając ze skryptu SQL [schema-articles.sql] wygenerowanego w punkcie 5.4.6.

  • w [1]: otwórz edytor SQL
  • w [2]: otwórz skrypt SQL
  • w [3]: wskazać skrypt [schema-articles.sql] utworzony w punkcie 5.4.6.
  • w [4]: skrypt został załadowany. Uruchamia się go.
  • w [5]: utworzono tabelę [ARTICLES].
  • w [6, 7]: jego zawartość

5.6.5. Sterownik JDBC dla PostgreSQL

Sterownik JDBC dla PostgreSQL jest dostępny w folderze [jdbc] w folderze instalacyjnym PostgreSQL:

Umieszczamy archiwum JDBC, podobnie jak poprzednie (punkt 5.4.7), w folderze <jdbc>:

Aby przetestować ten sterownik JDBC, użyjemy środowiska Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Poniżej przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: wskazano archiwum sterownika JDBC z PostgreSQL
  • w [2]: sterownik JDBC z PostgreSQL jest dostępny
  • do [3]: definicja połączenia (user, password)=(jpa, jpa)
  • w [4]: połączenie jest aktywne
  • w pliku [5]: nawiązano połączenie z bazą danych
  • w [6]: zawartość tabeli [ARTICLES]

5.7. SGBD a Oracle 10g Express

5.7.1. Instalacja

SGBD Oracle 10g Express jest dostępny pod adresem URL [http://www.oracle.com/technology/software/products/database/xe/index.html]:

  • pod adresem [1]: strona pobierania Oracle 10g Express
  • pod adresem [2]: wybierz wersję dla systemu Windows. Po pobraniu pliku uruchom go:
  • w [1]: kliknij dwukrotnie plik [OracleXE.exe]
  • w przypadku pliku [2]: pierwsza strona kreatora instalacji
  • w [3]: zaakceptuj licencję
  • w pliku [4]: zaakceptuj wartości domyślne.
  • w [5,6]: użytkownik SYSTEM będzie miał hasło „system”.
  • w [7]: rozpoczyna się instalacja

Instalacja Oracle 10g Express powoduje utworzenie folderu w [Démarrer / Programmes ]:

Image

5.7.2. Uruchamianie / wyłączanie Oracle 10g

Podobnie jak w przypadku poprzednich plików SGBD, Oracle 10g został zainstalowany jako usługa systemu Windows uruchamiana automatycznie przy starcie systemu. Zmieniamy tę konfigurację:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • na [1]: klikamy dwukrotnie na [Services]
  • na [2]: widzimy, że istnieje usługa o nazwie [OracleServiceXE], że jest uruchomiona ([3]) i że uruchamia się automatycznie ([4]).
  • w [5]: kolejna usługa Oracle o nazwie „Listener” jest również aktywna i uruchamia się automatycznie.

Aby zmienić to ustawienie, klikamy dwukrotnie na usługę [OracleServiceXE]:

  • w [1]: ustawiamy usługę na uruchamianie ręczne
  • w [2]: zatrzymujemy go
  • w [3]: zatwierdzamy nową konfigurację usługi

Podobnie postąpimy z usługą [OracleXETNSListener] (patrz [5] powyżej). Aby ręcznie uruchomić i zatrzymać usługę OracleServiceXE, można użyć skrótów z folderu [Oracle]:

  • w [1]: w celu uruchomienia SGBD
  • w [2]: w celu jego zatrzymania
  • na [3]: w celu zarządzania nim (co spowoduje jego uruchomienie, jeśli jeszcze nie jest uruchomiony)

5.7.3. Tworzenie użytkownika jpa i bazy danych jpa

Na powyższym zrzucie ekranu aplikacja [3] umożliwia zarządzanie serwerem Oracle 10g Express o nazwie SGBD. Uruchommy SGBD [1], a następnie aplikację administracyjną [3] za pomocą powyższego menu:

  • w [1]: zaloguj się jako administrator SGBD, w tym przypadku (system / system)
  • w [2]: tworzymy nowego użytkownika
  • w [4]: nazwa użytkownika
  • w [5, 6]: jego hasło, tutaj jpa
  • w [7]: użytkownik jpa został utworzony

W systemie Oracle użytkownik jest automatycznie powiązany z bazą danych o tej samej nazwie. Baza danych jpa istnieje zatem równocześnie z użytkownikiem jpa.

5.7.4. Utworzenie tabeli [ARTICLES] w bazie danych jpa

OracleXE został zainstalowany wraz z klientem SQL działającym w trybie wierszowym. Bardziej komfortową pracę zapewnia program SQL Developer, również dostarczany przez Oracle. Można go znaleźć na stronie:

[http://www.oracle.com/technology/products/database/sql_developer/index.html]

  • w [1]: strona pobierania
  • w przypadku [2]: należy pobrać wersję dla systemu Windows bez JRE, jeśli jest ono już zainstalowane (tak jak w tym przypadku), ponieważ [SQL Developer] jest aplikacją Java.
  • w [3]: rozpakuj pobrany plik ZIP
  • w przypadku pliku [4]: uruchomić plik wykonywalny [sqldeveloper.exe]
  • w [5]: przy pierwszym uruchomieniu [SQL Developer] należy podać ścieżkę do pliku Jre zainstalowanego na komputerze
  • w [5b]: utworzyć nowe połączenie
  • w [6]: SQL Developer umożliwia połączenie z różnymi SGBD. Wybierz Oracle.
  • w [7]: nazwa nadawana tworzonemu połączeniu
  • w [8]: właściciel połączenia
  • w [9]: jego hasło (jpa)
  • w polu [10]: zachowaj wartości domyślne
  • w [11]: w celu przetestowania połączenia (Oracle musi być uruchomiony)
  • w [12]: w celu zakończenia konfiguracji połączenia
  • w [13]: obiekty bazy jpa
  • w [14]: można tworzyć tabele. Podobnie jak w poprzednich przypadkach, utworzymy tabelę [ARTICLES] na podstawie skryptu utworzonego w punkcie 5.4.6.
  • w [15]: otwieramy skrypt SQL
  • w [16]: wskazujemy skrypt SQL utworzony w punkcie 5.4.6.
  • w [17]: skrypt, który zostanie wykonany
  • w [18]: wynik wykonania: utworzono tabelę [ARTICLES]. Kliknij na nią dwukrotnie, aby uzyskać dostęp do jej właściwości.
  • w [19]: zawartość tabeli.

5.7.5. Sterownik JDBC dla OracleXE

Sterownik JDBC dla OracleXE jest dostępny w folderze [jdbc/lib] w folderze instalacyjnym OracleXE [1]:

Umieszczamy archiwum JDBC [ojdbc14.jar] tak samo jak poprzednie (punkt 5.4.7) w folderze <jdbc> [2]:

Aby przetestować ten sterownik JDBC, użyjemy środowiska Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Poniżej przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: wskazano archiwum sterownika JDBC z OracleXE
  • w [2]: sterownik JDBC z OracleXE jest dostępny
  • do [3]: definicja połączenia (user, password)=(jpa, jpa)
  • w [4]: połączenie jest aktywne
  • w pliku [5]: nawiązano połączenie z bazą danych
  • w [6]: zawartość tabeli [ARTICLES]

5.8. SGBD SQL Server Express 2005

5.8.1. Instalacja

SGBD SQL Server Express 2005 jest dostępny pod adresem URL [http://msdn.microsoft.com/vstudio/express/sql/download/]:

  • w [1]: najpierw pobierz i zainstaluj platformę .NET 2.0
  • pod adresem [2]: następnie zainstalować i pobrać SQL Server Express 2005
  • w [3]: następnie zainstalować i pobrać SQL Server Management Studio Express, które umożliwia zarządzanie serwerem SQL

Instalacja programu SQL Server Express powoduje utworzenie folderu w [Démarrer / Programmes ]:

  • w [1]: aplikacja do konfiguracji serwera SQL. Umożliwia również uruchamianie i zatrzymywanie serwera
  • w [2]: aplikacja do zarządzania serwerem

5.8.2. Uruchom / Zatrzymaj serwer SQL

Podobnie jak w przypadku poprzednich serwerów SGBD, serwer SQL Express został zainstalowany jako usługa systemu Windows uruchamiana automatycznie przy starcie systemu. Zmieniamy tę konfigurację:

[Démarrer / Panneau de configuration / Performances et maintenance / Outils d'administration / Services ]:

  • na [1]: klikamy dwukrotnie na [Services]
  • na [2]: widzimy, że istnieje usługa o nazwie [SQL Server], że jest uruchomiona jako [3] oraz że uruchamia się automatycznie jako [4].
  • w [5]: kolejna usługa powiązana z serwerem SQL, o nazwie „SQL Server Browser”, jest również aktywna i uruchamia się automatycznie.

Aby zmienić to ustawienie, klikamy dwukrotnie na usługę [SQL Server]:

  • na [1]: ustawiamy usługę na uruchamianie ręczne
  • w [2]: zatrzymujemy usługę
  • w [3]: zatwierdzamy nową konfigurację usługi

Podobnie postępujemy z usługą [SQL Server Browser] (patrz [5] powyżej). Aby ręcznie uruchomić i zatrzymać serwer usługi SQL, można użyć aplikacji [1] z folderu [SQL server]:

  • w [1]: upewnij się, że protokół TCP/IP jest aktywny (enabled), a następnie przejdź do właściwości protokołu.
  • w [2]: w zakładce [IP Addresses], opcja [IPAll]:
    • pole [TCP Dynamic ports] pozostawiono puste
    • port nasłuchowy serwera jest ustawiony na 1433 w [TCP Port]
  • w pliku [3]: kliknięcie prawym przyciskiem myszy na usłudze [SQL Server] daje dostęp do opcji uruchamiania/zatrzymywania serwera. W tym przypadku uruchamiamy go.
  • w pliku [4]: serwer SQL został uruchomiony

5.8.3. Tworzenie użytkownika JPA i bazy danych JPA

Uruchommy program SGBD zgodnie z powyższymi wskazówkami, a następnie aplikację administracyjną [1] za pomocą poniższego menu:

  • w [1]: logujemy się do serwera SQL jako administrator systemu Windows
  • w [2]: należy skonfigurować właściwości połączenia
  • w [3]: zezwalamy na mieszany tryb logowania do serwera: albo przy użyciu loginu systemu Windows (użytkownika systemu Windows), albo przy użyciu loginu serwera SQL (konta zdefiniowanego w serwerze SQL, niezależnego od jakiegokolwiek konta systemu Windows).
  • w [3b]: tworzy się użytkownika serwera SQL
  • w [4]: opcja [General]
  • w [5]: nazwa użytkownika
  • w [6]: hasło (tutaj jpa)
  • w [7]: opcja [Server Roles]
  • w [8]: użytkownik jpa będzie miał uprawnienia do tworzenia baz danych

Potwierdzamy tę konfigurację:

  • w [9]: użytkownik jpa został utworzony
  • w [10]: następuje wylogowanie
  • w [11]: logujemy się ponownie
  • w [12]: logowanie jako użytkownik jpa/jpa
  • w [13]: po zalogowaniu się użytkownik jpa tworzy bazę danych
  • w [14]: baza będzie nosiła nazwę jpa
  • w [15]: i będzie należała do użytkownika jpa
  • w [16]: baza jpa została utworzona

5.8.4. Tworzenie tabeli [ARTICLES] w bazie danych jpa

Podobnie jak w poprzednich przykładach, utworzymy tabelę [ARTICLES] na podstawie skryptu utworzonego w punkcie 5.4.6.

  • w [1]: otwieramy skrypt SQL
  • w [2]: wskazujemy skrypt SQL utworzony w punkcie 5.4.6, strona 240.
  • w [3]: należy ponownie się zalogować (jpa/jpa)
  • w [4]: skrypt, który zostanie uruchomiony
  • w [5]: należy wybrać bazę danych, w której skrypt zostanie uruchomiony
  • w [6]: uruchomienie skryptu
  • w [7]: wynik wykonania: utworzono tabelę [ARTICLES].
  • w [8]: wyświetlanie zawartości
  • w [9]: zawartość tabeli.

5.8.5. Sterownik JDBC dla SQL Server Express

  • w [1]: wyszukiwanie w Google tekstu [Microsoft SQL Server 2005 JDBC Driver] prowadzi nas do strony pobierania sterownika JDBC. Wybieramy najnowszą wersję
  • w [2]: pobrany plik. Klikamy na niego dwukrotnie. Następuje rozpakowanie, w wyniku którego powstaje folder, w którym znajduje się sterownik Jdbc [3]
  • o nazwie [4]: umieszczamy archiwum Jdbc o nazwie [sqljdbc.jar], podobnie jak poprzednie (punkt 5.4.7), w folderze <jdbc>

Aby przetestować ten sterownik JDBC, użyjemy środowiska Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Poniżej przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: wskazano archiwum sterownika JDBC z serwera SQL
  • w [2]: sterownik JDBC z serwera SQL jest dostępny
  • do [3]: definicja połączenia (user, password)=(jpa, jpa)
  • w [4]: połączenie jest aktywne
  • w [5]: nawiązano połączenie z bazą danych
  • w [6]: zawartość tabeli [ARTICLES]

5.9. SGBD HSQLDB

5.9.1. Instalacja

SGBD HSQLDB jest dostępny pod adresem URL [http://sourceforge.net/projects/hsqldb]. Jest to aplikacja SGBD napisana w języku Java, bardzo lekka pod względem zużycia pamięci, która obsługuje bazy danych w pamięci, a nie na dysku. Wynikiem tego jest bardzo duża szybkość wykonywania zapytań. To jego główna zaleta. Bazy danych utworzone w ten sposób w pamięci mogą zostać odtworzone po wyłączeniu i ponownym uruchomieniu serwera. Polecenia SQL wydane w celu utworzenia baz są bowiem zapisywane w pliku logów, aby mogły zostać odtworzone przy następnym uruchomieniu serwera. W ten sposób zapewniona jest trwałość baz danych w czasie.

Metoda ta ma swoje ograniczenia, a HSQLDB nie jest rozwiązaniem przeznaczonym do użytku komercyjnego, takim jak SGBD. Jego główne zastosowanie dotyczy testów lub aplikacji demonstracyjnych. Na przykład fakt, że HSQLDB jest napisany w języku Java, pozwala na włączenie go do zadań Ant (Another Neat Tool) – narzędzia Java służącego do automatyzacji zadań. W ten sposób codzienne testy kodu w trakcie rozwoju, zautomatyzowane przez Ant, będą mogły obejmować testy baz danych zarządzanych przez SGBD i HSQLDB. Serwer będzie uruchamiany, zatrzymywany i zarządzany przez zadania Java.

  • w [1]: strona pobierania
  • w [2]: pobierz najnowszą wersję
  • w [3]: rozpakuj pobrany plik zip
  • w [4]: folder [hsqldb] powstały w wyniku rozpakowania
  • w [5]: folder [demo] zawierający skrypt umożliwiający uruchomienie serwera [hsql] [6] oraz w [7] – skrypt umożliwiający uruchomienie prostego narzędzia do administrowania serwerem.

5.9.2. Uruchamianie / zatrzymywanie serwera HSQLDB

Aby uruchomić serwer HSQLDB, należy dwukrotnie kliknąć powyższą aplikację [runManager.bat] [6]:

  • w [1]: widać, że aby zatrzymać serwer, wystarczy nacisnąć klawisze Ctrl-C w oknie.

5.9.3. Baza danych [test]

Domyślnie zarządzana baza danych znajduje się w folderze [data]:

  • w [1]: podczas uruchamiania SGBD HSQL uruchamia skrypt o nazwie [test.script]
1
2
3
4
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
  • wiersz 1: tworzony jest schemat o nazwie [public]
  • wiersz 2: tworzony jest użytkownik o nazwie [sa] z pustym hasłem
  • wiersz 3: użytkownik [sa] otrzymuje uprawnienia administracyjne

W rezultacie utworzono użytkownika z uprawnieniami administracyjnymi. To właśnie tego użytkownika będziemy używać w dalszej części.

5.9.4. Sterownik JDBC dla HSQL

Sterownik JDBC dla SGBD HSQL znajduje się w folderze [lib]:

  • w [1]: archiwum [hsqldb.jar] zawiera sterownik JDBC dla SGBD i HSQL
  • w [2]: umieszczamy ten plik archiwum tak samo jak poprzednie (punkt 5.4.7) w folderze <jdbc>

Aby sprawdzić ten sterownik JDBC, użyjemy programu Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: [window / preferences / SQL Explorer / JDBC Drivers]
  • w [2]: konfiguruje się serwer [HSQLDB]
  • w [3]: wskazujemy archiwum [hsqldb.jar] zawierające sterownik JDBC
  • w [4]: nazwa klasy Java sterownika JDBC
  • w [5]: sterownik JDBC jest skonfigurowany

Po wykonaniu tych czynności nawiązujemy połączenie z serwerem HSQL. Należy go wcześniej uruchomić.

  • w [6]: tworzymy nowe połączenie
  • w [7]: nadajemy mu nazwę
  • w [8]: chcemy połączyć się z serwerem HSQLDB
  • w [9]: adres URL bazy danych, z którą chcemy się połączyć. Będzie to baza [test], którą widzieliśmy wcześniej.
  • w [10]: logujemy się jako użytkownik [sa]. Widzieliśmy, że jest on administratorem bazy SGBD.
  • w [11]: użytkownik [sa] nie ma hasła.

Potwierdzamy konfigurację połączenia.

  • w [12]: nawiązujemy połączenie
  • w [13]: następuje uwierzytelnienie
  • w [14]: nawiązano połączenie
  • w [15]: schemat [PUBLIC] nie ma jeszcze tabeli
  • w [16]: utworzymy tabelę [ARTICLES] na podstawie skryptu [schema-articles.sql] utworzonego w punkcie 5.4.6.
  • w [17]: wybieramy skrypt
  • w [18]: skrypt do wykonania
  • w [19]: uruchamia się go po usunięciu wszystkich komentarzy, ponieważ HSQLB ich nie akceptuje.
  • po zakończeniu wykonywania skryptu odświeżamy w [20] wyświetlanie bazy danych
  • w [21]: tabela [ARTICLES] jest na swoim miejscu
  • w [22]: jej zawartość

Zatrzymajmy, a następnie uruchommy ponownie serwer HSQLDB. Po wykonaniu tej czynności sprawdźmy plik [test.script]:

1
2
3
4
5
6
7
8
9
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE ARTICLES(ID INTEGER NOT NULL,NOM VARCHAR(20) NOT NULL,PRIX DOUBLE NOT NULL,STOCKACTUEL INTEGER NOT NULL,STOCKMINIMUM INTEGER NOT NULL,CONSTRAINT PK_ARTICLES PRIMARY KEY(ID),CONSTRAINT CHK_ID CHECK(ARTICLES.ID>0),CONSTRAINT CHK_PRIX CHECK(ARTICLES.PRIX>0),CONSTRAINT CHK_STOCKACTUEL CHECK(ARTICLES.STOCKACTUEL>0),CONSTRAINT CHK_STOCKMINIMUM CHECK(ARTICLES.STOCKMINIMUM>0),CONSTRAINT CHK_NOM CHECK(ARTICLES.NOM!=''),CONSTRAINT UNQ_NOM UNIQUE(NOM))
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 10
SET SCHEMA PUBLIC
INSERT INTO ARTICLES VALUES(1,'article1',100.0E0,10,1)
INSERT INTO ARTICLES VALUES(2,'article2',200.0E0,20,2)
INSERT INTO ARTICLES VALUES(3,'article3',300.0E0,30,3)

Widać, że plik SGBD zapamiętał różne polecenia SQL wykonane podczas poprzedniej sesji i odtwarza je przy uruchomieniu nowej sesji. Widać ponadto (wiersz 2), że tabela [ARTICLES] jest tworzona w pamięci (MEMORY). Podczas każdej sesji wysłane polecenia SQL są zapisywane w tabeli [test.log], aby na początku kolejnej sesji zostały skopiowane do tabeli [test.script] i ponownie wykonane na początku sesji.

5.10. SGBD a Apache Derby

5.10.1. Instalacja

SGBD Apache Derby jest dostępny pod adresem URL [http://db.apache.org/derby/]. Jest to SGBD, również napisany w Javie i równie mało obciążający pamięć. Posiada zalety analogiczne do HSQLDB. Również ten moduł można wbudować w aplikacje Java, c.a.d, gdzie stanowi integralną część aplikacji i działa w tym samym środowisku, JVM.

  • w [1]: strona pobierania
  • w [2,3]: pobierz najnowszą wersję
  • w [3]: rozpakuj pobrany plik zip
  • w [4]: folder [db-derby-*-bin] powstały w wyniku rozpakowania
  • w [5]: folder [bin] zawierający skrypt służący do uruchamiania serwera [db derby] [6] oraz skrypt do jego zatrzymania w pliku [7].

5.10.2. Uruchamianie / zatrzymywanie Apache Derby (Db Derby)

Aby uruchomić serwer Db Derby, należy dwukrotnie kliknąć na powyższą aplikację [startNetworkServer] [6]:

  • w [1]: serwer został uruchomiony. Zatrzymamy go za pomocą powyższej aplikacji [stopNetworkServer] [7].

5.10.3. Sterownik JDBC dla bazy danych Derby

Sterownik JDBC bazy danych Derby o nazwie SGBD znajduje się w folderze [lib] w katalogu instalacyjnym:

  • w [1]: archiwum [derbyclient.jar] zawiera sterownik JDBC dla bazy danych Derby o numerze SGBD
  • w plik [2]: umieszczamy ten plik, podobnie jak poprzednie (punkt 5.4.7), w folderze <jdbc>

Aby przetestować ten sterownik JDBC, użyjemy środowiska Eclipse oraz wtyczki SQL Explorer. Zachęcamy czytelnika do postępowania zgodnie z instrukcją opisaną w punkcie 5.4.7. Poniżej przedstawiamy kilka istotnych zrzutów ekranu:

  • w [1]: [window / preferences / SQL Explorer / JDBC Drivers]
  • w [2]: sterownik JDBC dla Apache Derby nie znajduje się na liście. Należy go dodać.
  • w [3]: nadajemy nazwę nowemu sterownikowi
  • w [4]: określamy format adresów URL obsługiwanych przez sterownik JDBC
  • w [5]: wskazano plik .jar sterownika JDBC
  • w [5b]: nazwa klasy Java sterownika JDBC
  • w pliku [5c]: sterownik JDBC jest skonfigurowany

Po wykonaniu tych czynności nawiązujemy połączenie z serwerem Apache Derby. Należy go wcześniej uruchomić.

  • w [6]: tworzymy nowe połączenie
  • w [7]: nadajemy mu nazwę
  • w [8]: próbujemy połączyć się z serwerem Apache Derby
  • w [9]: adres URL bazy danych, z którą chcemy się połączyć. Po standardowym początku [jdbc:derby://localhost:1527] należy wpisać ścieżkę do folderu na dysku zawierającego bazę danych Derby. Opcja [create=true] pozwala utworzyć ten folder, jeśli jeszcze nie istnieje.
  • w [10,11]: łączymy się jako użytkownik [jpa/jpa]. Nie zgłębiałem tej kwestii, ale wydaje się, że jako login i hasło można wpisać dowolne dane. W tym miejscu określa się właściciela bazy, jeśli create=true.

Potwierdzamy konfigurację połączenia.

  • w [12]: logujemy się
  • w [13]: logujemy się (jpa/jpa)
  • w [14]: jesteśmy zalogowani
  • w [15]: schemat [jpa] jeszcze się nie pojawia.
  • w [16]: utworzymy tabelę [ARTICLES] na podstawie skryptu [schema-articles.sql] utworzonego w punkcie 5.4.6.
  • w [17]: wybieramy skrypt
  • w [18]: skrypt do wykonania
  • w [19]: uruchamia się go po usunięciu wszystkich komentarzy, ponieważ Apache Derby, podobnie jak HSQLB, ich nie akceptuje.
  • po zakończeniu wykonywania skryptu odświeżamy w [20] widok bazy danych
  • w [21]: schemat [jpa] i tabela [ARTICLES] są na swoim miejscu
  • w [22]: zawartość tabeli [ARTICLES]
  • w pliku [23]: zawartość folderu [derby\jpa], w którym utworzono bazę danych.

5.11. Framework Spring 2 „

Framework Spring 2 jest dostępny pod adresem [http://www.springframework.org/download]:

  • w [1]: pobieramy najnowszą wersję
  • pod adresem [2]: należy pobrać wersję zwaną „z zależnościami”, ponieważ zawiera ona archiwa .jar narzędzi innych producentów, które Spring integruje i które są nam zawsze potrzebne.
  • w [3]: rozpakowujemy pobrany plik
  • w [4]: folder instalacyjny Spring 2.1
  • w [5]: w folderze <dist> znajdują się archiwa Springa. Archiwum [spring.jar] zawiera wszystkie klasy frameworka Spring. Są one również dostępne w postaci modułów w folderze <modules> w [6]. Jeśli znamy moduły, których potrzebujemy, możemy je znaleźć tutaj. W ten sposób unikamy dołączania do aplikacji archiwów, które nie są jej potrzebne.
  • w [7]: folder <lib> zawiera archiwa narzędzi innych producentów wykorzystywanych przez Spring
  • w [8]: niektóre archiwa projektu [jakarta-commons]

Gdy w samouczku wykorzystywane są archiwa Springa, należy je pobrać albo z folderu <dist>, albo z folderu <lib> w katalogu instalacyjnym Springa.

5.12. Kontener EJB3 z JBoss

Kontener EJB3 z JBoss jest dostępny pod adresem URL [http://labs.jboss.com/jbossejb3/downloads/embeddableEJB3]:

  • w przypadku pliku [1]: pobieramy pliki JBoss i EJB3. Można zauważyć datę wydania produktu (wrzesień 2006 r.), podczas gdy pobieramy go w maju 2007 r. Można się zastanawiać, czy ten produkt jest nadal rozwijany.
  • w przypadku pliku [2]: pobrany plik
  • w [3]: rozpakowany plik ZIP
  • w [4]: archiwa [hibernate-all.jar, jboss-ejb3-all.jar, thirdparty-all.jar] tworzą kontener EJB3 z JBoss. Należy je umieścić w ścieżce klasy (classpath) aplikacji korzystającej z tego kontenera.