Wstęp do Hibernate przy użyciu NetBeans 7.3 i MySQL część 1: Podstawy

W poniższym wpisie chciałem przedstawić kompletne wprowadzenie do Hibernate’a przy użyciu bazy MySQL i środowiska NetBeans. Co będzie nam potrzebne? Poniższe technologie:

  • Java JDK (została użyta wersja 1.7)
  • Bazę MySQL (użyta została wersja 5.5)
  • Środowisko programistyczne NetBeans (użyta została wersja 7.3)
  • Graficzny interfejs użytkownika dla MySQLa (PhpMyAdmin, Heidi SQL, może też być linia komend 😉 )

Testowa aplikacja w pierwszej części będzie miała za zadanie obsługę tabeli użytkowników. Jest do zadanie dosyć trywialne, ale znakomite w celu zapoznania się z tym co oferuje Hibernate.

1) W pierwszej kolejności dodamy do bazy danych testową tabelę:

 

2) Otwieramy Netbeans i tworzymy nowy projekt

1

3) Wybieramy Java Web > Web Application

1

4) Wpisujemy “HibernateExample” w pole “Project Name”

1

5) Jako serwer wybieramy Apache Tomcat w wersji 7.0:

1

6) W kolejnym oknie wybieramy Hibernate, a także z listy rozwijanej “New Database Connection”

1

7) Jako sterownik wybieramy “MySQL Connector”

1

8) Uzupełniamy dane zgodnie z naszym dostępem do bazy

1

9) Zatwierdzamy zmiany przyciskiem “Finish”

11

10) Poprzez New File tworzymy plik konfiguracyjny HibernateUtil.java

1

11) W kolejnym kroku zatwierdzamy stworzenie pliku

1

12) Treść stworzonego pliku powinna prezentować się następuąco:

 

13) W tym momencie schemat aplikacji prezentuje się następująco:

1

14) Zaglądamy do pliku hibernate.cfg i modyfikujemy connection.url zmieniając “mysql” na “test”:

 

15) W kolejnym kroku tworzymy plik hibernate.reveng, na jego podstawie będziemy rzutować schemat bazy na encje:

11

16) Z list tabel bazy wybieramy tabelę “users”.

1

17) Tworzymy kolejne pliki, tym razem wybieramy pliki mapujące bazę

1

18) Pamiętamy by nowe dokumenty umieścić odrębnym pakiecie, np “model”

1

19) W ten sposób powstał poniższy schemat projektu

1

Dodatkowo poniżej przedstawione zostały zawartości plików odwzorujących:

Users.hbm.xml

 

users.java:

 

20) W tym momencie kończymy pracę z modelem, a rozpoczynamy fazę tworzenia kontrolerów. W tym celu po raz kolejny wybieramy opcję New File, tym razem wybieramy “servlet” i nazywamy go “users”.

11

21) Uruchomienie servletu spowoduje wyświetlenie w przeglądarce komunikatu “Servlet users at /HibernateExmple”

1

1

Mimo ładnie wyświetlonego komunikatu nadal nie odczuliśmy samego działania Hibernate. W tym celu aktualizujemy servlet users.java o nową metodę listUsers(), a także aktualizujemy metodę doGet(), w której wywołujemy uprzednio stworzoną listUsers(). Sama metoda listUsers() rozpoczyna się od stworzenia sesji i otwarcia transakcji, w której wywoływane jest polecenie SQL pobierające wszystkich użytkowników z bazy.

1

Widzimy, że projekt działa. Zamieszczone w bazie wpisy zostały wyświetlone w listy komend przy pomocy Hibernate. Oczywiście nic nie stoi na przeszkodzie aby zaimplementować funkcjonalność dodawania użytkownika do bazy. W tym celu stworzona została metoda createUser(Users user). Należy ją dodać do servletu users.java:

 

Oczywiście musimy również zmodyfikować metodę doGet():

 

Po uruchomieniu servletu baza zostanie zaktualizowana o wpis “Alan Alda” (korzystamy tu konstruktora z parametrami), czego dowodem jest:

1

Idąc dalej obraną ścieżką swobodnie możemy zaimplementować funkcjonalność usuwania użytkownika.

W tym celu dodajemy nową metodę w servlecie:

 

Aktualizujemy metodę doGet():

 

Widzimy, iż w powyższym kodzie użyty została metoda get klasy Session pozwalająca na pobranie danego rekordu z bazy i zmapowanie go na obiekt klasy podany w pierwszym parametrze metody.

Wywołanie tak stworzonego servletu powinno zaowocować usunięciem rekordu 4 z bazy “users”. Tak się właśnie stało:

1

Końcowy listing servletu users.java prezentuje się następująco:

W ten oto sposób uruchomiliśmy Hibernate’a, przetestowaliśmy jego podstawowe funkcjonalności.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.