Transcript
Wykład 3 Mechanizmy RMI i JDBC w dostępie do baz danych
Klient
Serwer
Aplikacja - baza Tytul, Ksiazka, Ksiazka_Tytul, WeWy ObjectProcessor SQLProcessor2
Aplikacja - server
Warstwa pośrednia ConnectionImpl_stub.class SessionImpl_stub.class
Warstwa szkieletowa ConnectionImpl_skel.class SessionImpl_skel.class
Warstwa odwołań zdalnych
Warstwa odwołań zdalnych
Warstwa transportowa
sieć
Warstwa transportowa
Pliki żródłowe aplikacji
Zofia Kruczkiewicz, I-6, p325 C3
1
Internetowe bazy danych, Wykład 3
Interfejsy RMI Connection - interfejs zamykający i otwierający dostęp do bazy danych zwraca referencję do interfejsu typu Session Session - interfejs będący odwołaniem do obiektu RMI warstwy pośredniej, operującego na bazie danych Klasa warstwy klientainterfejs użytkownika
Klasy warstwy danych przesyłanych między warstwą pośrednią a warstwą klienta obiekty reprezentujące poszczególne struktury w b służą do operacji We/Wy (WeWy)
Klasa serwera warstwy pośredniej Klasy warstwy pośredniej SQLProcessor2klasa odpowiedzialna za otwieranie i zamykanie połączeń z bazą danych; udostępnia referencje do obiektu typu ObjectPropcessor ObjectProcessor – klasa odpowiedzialna za zapis do bazy i odczyt z bazy danych potrzebnych do tworzenia obiektów z warstwy obiektów; zawiera wywołanie preinterpretowanych zapytań do bazy danych
Zofia Kruczkiewicz, I-6, p325 C3
2
Internetowe bazy danych, Wykład 3
package przyklad.klient; import java.io.*; import java.util.*; import java.rmi.*; import przyklad.obiekty.*; import przyklad.*; public class baza { String data, sql; Connection _connection = null; Session _session = null; String _user=""; void glowna() { System.setSecurityManager(new RMISecurityManager()); try { _connection= (Connection)Naming.lookup("Przyklad_connection"); _session= _connection.connect("",""); if (_connection!=null ) { System.out.println("Jest polaczenie"); if ( _session!=null) { System.out.println("Jest sesja"); operacje_na_bazie(); } } } catch(Exception e) { System.out.println("Blad bazy "+e); _connection=null; _session=null;} try { _connection.disconnect(_user); } catch(Exception e) { System.out.println(e.getMessage()); } finally { _connection=null; _session=null; } } void drukuj_tytuly(Tytul t[]) { int ile=t.length; for (int i=0;i