Czym są składowane procedury Javy? Czy pozwalają na dostęp do bazy danych za pośrednictwem Javy?? Otóż składowane procedury Javy to jeden ze sposobów na łączenie Javy z bazą danych. Kwestia polega na wywoływaniu kodu Javy za pośrednictwem PL/SQL.
Składowana procedura jest metodą Javy napisaną i skompilowaną jako klasa Javy, opublikowano w SQL a następnie zapisano w bazie danych Oracle.
Pomost programistyczny między językiem Java a Bazą danych Oracle i kodem SQL
Projektowanie składowanej procedury Javy obejmuje: napisanie metod Javy przez utworzenie niestandardowej klasy. Ma to na celu uzyskanie pożądanej funkcjonalności. Następnie ładuje się ową metodę do systemu RDBMS i rozwiązuje zewnętrzna referencje. Kolejnym krokiem jest opublikowanie metody w systemie RDBMS przez napisanie specyfikacji wywołania PL/SQL następnie przyznanie odpowiednich przywilejów do wywołania składowanej procedury Javy i wreszcie wywołanie jej za pomocą kodu SQL bądź PL/SQL.
Na temat języka Java pisaliśmy o Jak zrozumieć Ziarna w języku Java?.
Do załadowania metody Java do bazy danych Oracle 8 służy program użytkowy loadJava. Wykonuje się go z wiersza poleceń. Program ten można wykorzystać do ładowania plików źródłowych. Java, plików .class .jar .sqlj czy plików z zasobów Javy.
Procedura pisania procedury
Publikowanie metody Javy polega na napisaniu procedury, funkcji lub metody składowej PL/SQL za pomocą klauzuli AS LANGUAGE JAVA NAME. Następnie należy określić pełną nazwa metody Javy - uwzględniając typy danych parametrów. Do kontekstu wykonywania mogących wywoływać składowane procedury jave należą:
-składowane pakiety
- funkcje i procedury
- triggery bazodanowe
- metody obiektowo-relacyjne
- anonimowe bloki PL/SQL, a także
- instrukcję SQL DML.
Co ciekawe, składowane procedury Javy można wywołać również z klienta Javy za pomocą programu JDBC lub SQLJ, klientów Pro, OCI lub ODBC. Wyboru mamy również klienta Oracle Developer Forms.
Składowane procedury Javy oraz wywoływanie Javy za pośrednictwem PL/SQL.
Jak wygląda współpraca pomiędzy Java a językiem natywnym baz danych w obrębie środowiska Oracle? To właśnie składowana procedura Javy jest metodą tego języka opublikowano w SQL i złożona w bazie danych Oracle. Po napisaniu metody Javy skompilowany jej jako klasy, można ją opublikować przez napisanie specyfikacji wywołania, co po angielsku nazywamy call specification, stąd mamy skrót call spec.
Specyfikacje wywołania mapują nazwy metod języka Java wraz z typami parametrów zwracają przy tym typy do ich odpowiedników w języku SQL.
Na temat języka SQL - później.
Strona do pobierania wersji Oracle - https://www.oracle.com/pl/database/technologies/oracle19c-windows-downloads.html
A więc metoda Javy wywoływana jest przez własną specyfikację wywołanie, zaś system wykonywania programów wysyła wywołanie z minimalnym przeciążeniem. Publikowaniu składowana procedura Javy wywoływana jest przez aplikacje klienckie ważne jest że może wówczas czas przyjać argumenty, a także odwołać się do klas Javy i zwrócić wartości zwrotne tego języka.
Typ aplikacji, w którym może wywołać składowana procedurę Javy, zdeterminowany jest tak zwanym kontekstem wykonywania - po angielsku mamy tutaj określenie runtime context. Każdą metodę Javy nie zawierającą metod GUI można składować i uruchamiać w kontekście. Jakie mamy konteksty wykonywania?
Konteksty wykonywana:
- Funkcje i procedury
- Triggery bazodanowe
- Metody obiektowo-relacyjne
Procedur można używać w przypadku metod Java typu void, a funkcji w przypadku metod zwracających wartości. Rolę specyfikacji wykonań mogą pełnić też spakowane procedury i funkcje.
Bezpośrednie wykonywanie raczej wywoływanie metod Javy opublikowanych jako procedury i funkcje to kolejny temat. Mamy tutaj instrukcje CALL w języku SQL jak również anonimowe bloki PL/SQL czy też składowane procedury funkcji i pakiety. Mamy też do dyspozycji instrukcję SQL Data Manipulation Language, czyli DML.
Gdy mówimy o wywoływaniu składowanych procedur Javy to nie sposób pominąć opcji z wykorzystaniem:
- Klienta Oracle developer Forms
- Klienta Javy przez łącze JDBC lub SQLJ
Jakie zalety posiadają składowane procedury języka Java?
Gdy projekt informatyczny zakłada złożoną logikę biznesową wykorzystywano w bazie danych to za pomocą czystego SQL tego nie da się zrobić. Jednak używając procedur składowanych wdrożenie skomplikowanej logiki biznesowej do bazy danych jest możliwe; przykładowo posiadamy wielowymiarowe tablice niezwykle trudne do obsłużenia w PL/SQL; inny przykład to funkcje 3GL.
Dlaczego procedury Java a nie procedury SQL?
Java poprzez swoje specyficzne cechy umożliwia nam automatyczne zarządzanie pamięcią i nie pozwala na bezpieczniejszy system typów danych.
Chociaż mamy do dyspozycji składowane procedury PL/SQL, jednak procedury w języku Java posiadają szeroki dostęp w zakresie współdzielenia logiki biznesowej w wielu aplikacjach. Dzieje się tak dlatego że można je zaprojektować dowolnym zintegrowanym środowisku programowania, IDE. Co charakterystyczne dla Javy instalacja zaprojektowanego kodu nie jest uzależniona od architektury, wprost da się zainstalować w dowolnej warstwie architektury sieciowej.
Bibiografia:
Procedura Oracle zwracająca tablicę: https://www.ibm.com/docs/pl/tivoli-netcoolimpact/7.1?topic=array-examples-oracle-stored-procedure-that-returns
https://docplayer.pl/611698-Zastosowanie-procedur-funkcji-i-pakietow.html