dc.description.abstract |
Obecnie mappery obiektowo-relacyjne są głównym wyborem, każdego programisty, który poszukuje rozwiązania dla połączenia swojej aplikacji z bazą danych. Korzyści płynącego z tego wyboru są znaczne. Zaczynając od zamaskowania czasami dotkliwych różnic pomiędzy modelami obiektowymi i relacyjnymi, a kończąc na cache’owaniu wyników zapytań. W języku Java najpopularniejszy mapperem jest biblioteka Hibernate. W procesie odpytywania bazy danych wykorzystuje ona język JPQL, który to jest głównym tematem niniejszej pracy. W zależności od posiadanego środowiska programistycznego programista posiada zróżnicowaną pomoc oferowaną przy tworzeniu zapytań w tym języku. Tworzone są Stringi, których poprawność weryfikowana jest na etapie wykonania programu. Powoduje to często znaczne trudności z rozwojem aplikacji, gdyż potencjalne literówki wymagają ciągłej poprawy.
Inspiracją oraz przykładem jak powinna wyglądać praca z mapperem, w zakresie tworzenia zapytań, może być EntityFramework z języka C#. Ta biblioteka posiada bardzo mocną kontrolę topologiczną pisanego zapytania. Osiągnięte to przez mechanizm wywoływania kolejnych metod oraz przekazywania im wartości biznesowych, których zapytanie dotyczy. W połączeniu ze środowiskiem programistycznym daje to możliwość solidnego wsparcia programisty już na etapie tworzonego kodu.
W pracy podjęto próbę stworzenia bliźniaczego rozwiązania dla języka Java, które ułatwiałoby prace z Hibernate. Wzorowano się na języku LINQ wykorzystywanym w EntityFramework. Głównym celem stawianym przed prototypem oprogramowania jest maksymalne uproszczenie procesu tworzenia zapytań, z jednoczesnym minimalnym ograniczeniem możliwości samego mapppera. |
pl_PL |