Spring JDBC Development - Podejście praktyczne

Ogólna architektura aplikacji zawiera kilka warstw, przedstawionych na poniższym obrazku:

kwi 2, 2018 1190
Ogólna architektura aplikacji zawiera kilka warstw, przedstawionych na poniższym obrazku:

general_architecture_of_an_application.png


W zarysie ogólnym tej struktury znajduje się:

  • Warstwa prezentacyjna (presentation layer): przeglądarki internetowe, aplikacje mobilne, samodzielne aplikacje - pokazują dane i współdziałają z użytkownikiem.
  • Warstwa usług biznesowych (business services layer), stosuje logikę biznesową (business logic). Obiekty biznesowe (business objects) są używane przez usługi biznesowe. Muszą być one zsynchronizowane z warstwą trwałości (persistence layer).
  • Warstwa dostępu do danych (data access layer) zapewnia synchronizację między obiektami biznesowymi i warstwą trwałości. Dla każdej jednostki domeny należy utworzyć oddzielną klasę DAO (Data Access Object).

Chcielibyśmy zaprezentować, jak napisać DAO przy pomocy Spring.

Rolą JDBC jest umożliwienie jednolitej interakcji między aplikacją a bazą danych. JDBC używa sterowników, po jednym dla każdej bazy danych. Sterowniki tłumaczą polecenia interfejsu JDBC API na polecenia systemu baz danych.

JDBC_API.jpg


Można się zastanawiać, dlaczego warto korzystać ze Spring JDBC, jeśli mamy już ORM? Istnieje ku temu kilka powodów, wymienionych poniżej:

  • Spring JDBC zapewnia elastyczność; wykorzystuje wszystkie możliwości RDBMS.
  • Spring JDBC jest przejrzysty - wszystko jest pod kontrolą, podczas gdy ORM sam tworzy polecenia SQL.
  • Spring JDBC zapewnia wyższą wydajność.
  • I na koniec, o ile będziesz miał kontrolę nad procesem, nie pojawią się żadne niespodzianki podczas pracy z bazami danych.

W takim razie, dlaczego proste łącze JDBC jest niewystarczające? Istnieje również kilka powodów:

  • Proste JDBC nadal wymaga ręcznej obsługi wyjątku
  • Proste JDBC obejmuje ręczne zarządzanie transakcjami
  • Proste JDBC nie zapewnia mapowania danych do obiektów
  • Ponadto, istnieje duża ilość kodu serwisowego

Wzorzec projektowy DAO zawiera dopasowanie między obiektem biznesowym a tabelą bazy danych. Można założyć, że zaczynamy od następującego interfejsu i następującej tabeli bazy danych:

bazy_danych.jpg

Naszym celem jest utrzymanie obiektu Book z pamięci w tabeli Book z bazy danych. Aby w tym przypadku pracować z prostym JDBC, kod może wyglądać nastepująco:

JDBC.jpg


Obserwując działania, które trzeba wykonać przy użyciu prostego JDBC, widoczna jest następująca sekwencja:

  • Zdefiniowanie parametrów połączenia
  • Otwarcie połączenia
  • Określenie polecenia (statement)
  • Przygotowanie i wykonanie polecenia
  • Iteracja wyników
  • Wykonanie pracy dla każdej iteracji
  • Przetworzenie każdego wyjątku
  • Obsługa transakcji
  • Zamknięcie połączenia

W następnym artykule przyjrzymy się, jak można to zrobić za pomocą Spring JDBC.

Chcesz poprawić swoje umiejętności w zakresie programowania Spring? Sprawdź nasze szkolenia: Tworzenie aplikacji w Spring Framework, Spring Core i Spring Databases.

Catalin Tudose
Java and Web Technologies Expert

Udostępnij


Masz jeszcze jakieś pytania?
Skontaktuj się z nami
Thank you.
Your request has been received.