AWWW-1st3.6-w09.tresc-1.0-Slajd3

From Studia Informatyczne

Dostęp do baz danych z aplikacji Java EE

Dostęp do baz danych z aplikacji Java EE


Aplikacje Java Enterprise Edition (Java EE), podobnie jak wszystkie aplikacje tworzone w języku Java, komunikują się z bazą danych poprzez interfejs JDBC. Ręczne kodowanie w JDBC jest uciążliwe i podatne na błędy, choćby dlatego, że w JDBC polecenia SQL są zapisane w łańcuchach znaków i ich treść nie jest weryfikowana na etapie kompilacji aplikacji. Odpowiedzią na wady JDBC miał być standard SQLJ, umożliwiający zagnieżdżanie poleceń SQL w kodzie Java za pomocą specjalnych konstrukcji, przetwarzanych przed kompilacją translatorem SQLJ. SQLJ nie zyskał jednak popularności i jest dziś prawie martwym standardem. Głównie dlatego, że twórcy dużych aplikacji w języku Java, w tym aplikacji Java EE, nie kodują bezpośrednio w JDBC, ale wykorzystują technologie oparte o JDBC, ale działające na wyższym poziomie abstrakcji.

Dostęp do bazy danych w aplikacjach WWW opartych o JSP może być realizowany poprzez bibliotekę znaczników JSTL SQL. Jest to jednak rozwiązanie akceptowalne tylko dla bardzo prostych aplikacji, gdyż narusza zasadę separacji logiki biznesowej od logiki prezentacji.

Lansowanym przez wiele lat „oficjalnym” mechanizmem komunikacji z bazą danych w aplikacjach Java EE były encyjne komponenty EJB. Ich architektura nie wykorzystywała jednak możliwości systemów baz danych, przez co korzystanie z nich było nienaturalne, a sama technologia w praktyce nieefektywna. Wraz z pojawieniem się specyfikacji EJB 3.0, encyjne komponenty EJB zostały zarzucone i zastąpione w ramach technologii Java EE przez Java Persistence.

Jako alternatywę dla problematycznych encyjnych EJB opracowano szereg „lżejszych” technologii odwzorowania obiektowo-relacyjnego (w tym m.in. Hibernate i Toplink), które zyskały dużą popularność. Nowy standard Java Persistence, opracowany wspólnie z EJB 3.0, oparty jest o technologie odwzorowania obiektowo-relacyjnego i standaryzuje API do obsługi trwałości danych w aplikacjach Java.


<< Poprzedni slajd | Spis treści | Następny slajd >>