W dzisiejszych czasach niemal każda aplikacja korzysta w jakiś sposób z bazy danych, niestety programiści tworzący NetBeans Platform chyba o tym zapomnieli i nie dali programistom wygodnego dostępu do zasobów bazodanowych. Oczywiście w czeluściach dostępnych modułów można znaleść moduł Database, ale przy próbie dodania go do projektu okazuje się, że potrzebuje olbrzymiej ilości dodatkowych modułów czasem bardzo luźno związanych z bazą danych (np. platform/favorites). Jeśli ktoś zasmakował JPA to raczej niemożliwe by wrócił do JDBC, klepania zapytań z ręki i ich manualnej obróbki do strawnej formy. Jak więc obsłużyć bazę w NetBeans Platform i to z wykorzystaniem JPA. Nie jest to banalne rozwiązanie jak podpięcie bazy w aplikacji webowej ale na szczęście możliwe.
Aby dodać obsługę bazy w projekcie postąpiłem według poniższych kroków:
- Utworzyć dodatkowy projekt z kategorii Java->Java Application, posłuży on do wygenerowania Encji oraz pliku konfiguracyjnego persistence.xml, a także dzięki niemu skopiujemy potrzebne nam biblioteki.
- W właściwościach projektu(Java Application) w zakładce Libraries dodać biblioteki: Persistence, Toplink Essentials, Toplink Essentials – Agent oraz MySQL JDBC Driver.
- Stworzyć klasy mapujące tabele w bazie danych oraz PersistenceUnit.
- Utworzyć moduł( w aplikacji NbPlatform) który ma wykorzystywać bazę danych.
- Przekopiować stworzone pliki (Pakiet META-INF oraz dbconf) do pakietu aplikacji
- Stworzyć moduł wrappera na biblioteki wymienione wyżej, aby to zrobić wystarczy wejść do opcji modułu który ma korzystać z bazy i tam w zakładkach dać „New Library” po czym wskazać wszystkie biblioteki i iść zgodnie z kreatorem.
- W module który ma korzystać z bazy utworzyć pakiet klas DAO.
- I wszystko działa.
Oczywiście z klas encji oraz klas DAO można stworzyć osobną bibliotekę i zaimportować ją jak biblioteki dostępu do bazy, ale jak dla mnie było to niewygodne rozwiązanie z racji, że klasy te były przeze mnie często modyfikowane.