Newsletter

Grupa MagazynyInternetowe

Online: 984

Wyszukiwarka

JAVA, Bazy danych

Bazy danych w Javie

Bazy danych w Javie Podstawowym sposobem korzystania z bazy danych w aplikacjach napisanych w Javie jest użycie JDBC. Niesie to ze sobą konieczność pisania zapytań w języku SQL, co z kolei może okazać się dużym problemem w sytuacji, gdy aplikacja powinna móc działać na wielu różnych systemach bazodanowych. Dodatkowo korzystanie z JDBC utrudnia w pełni obiektowe programowanie - przecież o wiele wygodniej i poprawniej byłoby, gdyby miały także reprezentację obiektową.

Marcin Staniszczak

Dlatego dla Javy powstało kilka rozwiązań mających na celu rozwiązanie powyższych problemów. Wśród nich między innymi JDO - standard, który się jednak za bardzo nie przyjął, iBATIS - prosty sposób na mapowanie bazy danych do obiektów, oraz bohater tego artykułu, Hibernate - potężne narzędzie, cieszące się ogromną popularnością (jakiś czas temu powstała także wersja Hibernate dla platformy .NET - NHibernate).

Hibernate ma tak olbrzymie możliwości, że nie sposób omówić ich w jednym artykule, czy nawet w całej serii artykułów ukazujących się przez rok (wystarczy wspomnieć, że podstawowa książka na jego temat, "Java Persistence with Hibernate" autorstwa Christiana Bauera i Gavina Kinga, to niemal 900 stron). Dlatego artykuł ten potraktuj jako wstęp do tej technologii i zachętę do dalszej pracy.

Instalacja

Hibernate jest tworzone przez firmę JBoss. Bibliotekę tę znajdziesz na stronie http://www.hibernate.org. Hibernate został podzielony na kilka części. W celu uruchomienia przykładu z tego artykułu będziesz potrzebował dwóch z nich:

  • Hibernate Core - podstawowa część biblioteki, wykonująca większość pracy,
  • Hibernate Annotations - element pozwalający zastąpić większą część konfiguracji Hibernate, budowanej do tej pory w XML, poprzez adnotacje w kodzie napisane z użyciem Javy 5.

W celu łatwiejszego i szybszego budowania aplikacji powinieneś także pobrać Hibernate Tools, w którego skład wchodzą między innymi zadania dla Anta.

Instalacja Hibernate sprowadza się do rozpakowania archiwum z plikami oraz przegrania bibliotek .jar do odpowiedniego katalogu zawierającego twój projekt.

Poza Hibernate potrzebna będzie ci także baza danych. Mimo że Hibernate oferuje wsparcie dla większości mniej i bardziej popularnych relacyjnych baz danych, a twoja aplikacja bez problemów powinna działać na każdej z nich, to polecam użycie HSQLDB. Jest to mała baza, składająca się z jednego pliku JAR. Została ona napisana w Javie. Świetnie nadaje się do celów demonstracyjnych oraz testowych. Najnowszą wersję bazy HSQLDB możesz pobrać ze strony http://hsqldb.org/.

Na koniec pobierz i zainstaluj Anta, czyli narzędzie automatyzujące proces kompilacji i wdrożenia (a dzięki zadaniom Hibernate Tools także nieco więcej).

Projekt

W ramach tego artykułu zbudujesz w oparciu o Hibernate prosty program, obsługujący newsy. Nie będzie to jednak program typowo webowy, a aplikacja konsolowa. Jest to działanie celowe - cała otoczka webowa niepotrzebnie zaciemniałaby kod związany bezpośrednio z Hibernate. Gdy już będziesz wiedział, na czym to wszystko polega, sam dasz sobie radę z obudowaniem Hibernate wybranym przez siebie frameworkiem MVC - np. wspomnianym już Struts.

Nasz projekt będzie miał dwie główne klasy:

  • News - klasę odpowiedzialną za przechowywanie podstawowych informacji o newsie,
  • User - klasę przechowującą informacje o użytkowniku (tworzącym newsy).

Jak łatwo się domyślić, klasa News będzie miała odwołanie do klasy User, czyli do użytkownika, który danego newsa utworzył. Dodatkowo będziesz potrzebował jeszcze klasy wykonującej przykładowe działania na dwóch powyższych, łącznie z zachowaniem ich stanu w bazie - nazwiemy ją Run, a także specjalnej klasy narzędziowej HibernateUtil.

Klasa User

Klasa ta odpowiada za przechowywanie informacji o użytkowniku, który jest, bądź też może być autorem newsów. Klasa ta jest bardzo prosta:

[-]
 
Java
Pobierz
Listing zwinięty - 47 linii

Zwróć uwagę na domyślny, bezparametrowy konstruktor. Jest on wymagany przez Hiberante do tego, aby klasa mogła być utrwalana w bazie. Przyjrzyj się również typowym getterom oraz setterom, czyli metodom, dzięki którym masz z zewnątrz dostęp do prywatnych pól klasy, takich jak name czy surename.

Aby taka klasa mogła być zmapowana przez Hibernate do tabeli relacyjnej bazy danych, Hibernate musi być poinformowany o tym, jak zbudowana jest odpowiednia tabela. Konfigurację możesz zapisać w pliku XML bądź, jak już wcześniej wspomniałem, za pomocą adnotacji w kodzie Java. Ten drugi sposób jest zdecydowanie wygodniejszy, szczególnie gdy nie przewidujesz częstych zmian w schemacie tabel.

Pierwsze adnotacje należy dodać przed nazwą klasy:

[+]
 
 
Pobierz
1. @Entity
2. @Table(name = "USERS")
3. public class User {
19 września 2007

Powiązane publikacje

Po co web developerowi bazy danych?

Po co web developerowi bazy danych?

Czat w Javie

Czat w Javie

Java w urządzeniach mobilnych

Java w urządzeniach mobilnych

 
Skomentuj
ten artykuł

Komentarzy: 1

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum wtorek, 13.10.2009 12:28TomEk

Niestety nie mogę znaleźć liku do paczki z całością programu - przydałaby się do testów

Zobacz wszystkie komentarze »

Autor

Marcin Staniszczak

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.