Java wspomaga SQL

Standard SQLJ ustanawia Javę jako równoprawny język do pisania aplikacji bazodanowych oraz oznacza poważne korzyści dla twórców aplikacji.

Standard SQLJ ustanawia Javę jako równoprawny język do pisania aplikacji bazodanowych oraz oznacza poważne korzyści dla twórców aplikacji.

Przyjęcie przez amerykański komitet standaryzacyjny ANSI specyfikacji SQLJ, określającej metody włączania poleceń SQL do języka Java, wywołało spore zainteresowanie programistów aplikacji, ponieważ znacznie przyspieszy pisanie aplikacji bazodanowych w Javie. Od pojawienia się pierwszej wersji pakietu Java Development Kit (JDK) 1.0, programiści korzystali ze specyfikacji JDBC dla dostępu do baz danych z aplikacji w Javie. JDBC to zestaw klas w Javie, zapewniający dostęp do większości relacyjnych baz danych.

Jednakże stosowanie JDBC w dużych aplikacjach ma dwa niekorzystne aspekty. Po pierwsze, zestaw API funkcji JDBC jest obszerny i stosunkowo niskiego poziomu, wymaga więc do ich użycia wielu wierszy kodu. Nawet wykonanie prostego polecenia SQL wymaga napisania w Javie kilkunastu wierszy kodu. Stworzenie dużej aplikacji, w której wielokrotnie używa się tych samych poleceń, zwiększa znacznie rozmiar kodu, a powtarzalna natura tych operacji często prowadzi do błędów.

Po drugie, korzystając z JDBC nie ma możliwości wywołania kodu Javy w serwerze bazy danych, a więc i pisania popularnych procedur składowanych w tym języku. Tymczasem wiele największych baz danych jest już wyposażonych w maszynę wirtualną Java i pozwala na bezpośrednie korzystanie z Javy do tworzenia procedur składowanych i trygerów.

Najwięksi popierają Javę

Wsparcie Javy i jej popularność w tworzeniu aplikacji dla Internetu zachęciły producentów systemów do zarządzania bazami danych do opracowania specyfikacji włączania poleceń SQL bezpośrednio w kod Javy. Celem było również osiągnięcie pełnej przenośności kodu (czystej 100-proc. Javy) między różnymi systemami bazodanowymi. Specyfikacja zaproponowana przez firmy IBM, Oracle, Compaq/Tandem i JavaSoft w grudniu 1998 r. została usankcjonowana przez ANSI przyjęciem standardu SQLJ. Standard ten wspierają również inni producenci systemów zarządzania bazami danych, m.in. Informix i Sybase.

Co to jest SQLJ?

SQLJ to standardowy sposób włączania poleceń SQL w programy Java. Programista wstawia polecenia SQL w kod programu Java, zgodnie z pewną liczbą reguł składniowych, określających, jak te polecenia można wstawiać w kod. Następnie uruchamia się translator SQLJ (preprocesor SQLJ), przetwarzający taki program w standardowy kod źródłowy Java, w którym polecenia SQL zamieniono na wywołanie funkcji modułu wykonawczego (run-time) SQLJ. Kod kompiluje się następnie do kodu bajtowego Java za pomocą kompilatora Java i można go już uruchamiać na dowolnej maszynie wirtualnej Java. Moduł wykonawczy SQLJ to stosunkowo niewielka biblioteka napisana w Javie, służąca do wywoływania metod sterownika JDBC dla wybranej bazy. SQLJ ukrywa więc całą złożoność funkcji JDBC przed programistą w formie niewielkiej liczby zaleceń składniowych, dotyczących włączania polecenia SQL w kod programu Java.

Statyczne sprawdzanie poprawności

Rola translatora SQLJ nie ogranicza się do wytworzenia kodu języka Java. Sprawdza on również statycznie (w czasie kompilacji programu) poprawność typów zmiennych lub obiektów Java w programie z typami danych, które będą pobrane z bazy danych (aby nie zdarzyło się, że nazwisko klienta będzie wpisywane do zmiennej na jego datę urodzenia), zgodność programu ze schematem bazy (w tym celu w czasie kompilacji musi być dostępna sesja połączeniowa z bazą) i in.

SQLJ nie kwalifikuje się jednak do pisania programów posługujących się dynamicznymi zapytaniami SQL, wykonywanymi na bieżąco i nie kompilowanymi wstępnie na ścieżkę wykonywania przez serwer bazy danych. Raporty z bazy danych wykonywane ad hoc przez użytkownika muszą więc posługiwać się dostępem do bazy za pośrednictwem sterownika JDBC. Możliwe jest również łączenie w jednym programie Java wywołań SQL statycznych (posługujących się SQLJ) i dynamicznych (korzystających ze sterownika JDBC).

Pierwsza implementacja

Nie istnieją na razie narzędzia programistyczne Java niezależnych producentów, pozwalające na posługiwanie się SQLJ. Nie dziwi natomiast, że firma Oracle - biorąca aktywny udział w opracowaniu standardu - stworzyła pakiet narzędziowy SDK, przeznaczony dla producentów narzędzi, powalający na włączenie funkcjonalności SQLJ do ich zestawów narzędziowych. Oracle wprowadza również zestaw narzędziowy JDeveloper (produkt oparty na JBuilder firmy Inprise/Borland), umożliwiający korzystanie z SQLJ.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200