Czym jest JDBC? Technologia pozwalająca korzystać z danych zawartych w bazach. Udostępnia interfejs dzięki któremu można formułować zapytania do bazy, pobierać rekordy - opakowywać je w wygodne obiekty języka Java i potem korzystać z nich w programie. Odczyt danych z bazy: Załadowanie sterownika interfejs java.sql.Driver Otwarcie połączenia interfejs java.sql.Connection Utworzenie obiektu do wykonywania poleceń interfejs java.sql.Statement Odczyt danych i zapamiętanie wyniku interfejs java.sql.ResultSet DriverManage r Statement getConnection createStatement prepareStatement PreparedStatemen t Connectio n prepareCall CallableStatemen t Sterowniki JDBC: JDBC driver- jest zbiorem skompilowanych klas (bajtkod Javy), które implementują wszystkie interfejsy zawarte w java.sql oraz przedefiniowują pozostające tam klasy. Rodzaje: mosty JDBC-ODBC pośrednie JDBC Java do API SZBD bezpośrednie JDBC Podsumowanie najważniejszych metod: DriverManager Connection getConnection(String url) - nawiązuje połączenie ze źródłem danych url Connection - Klasa Connection odpowiada pojedynczemu połączeniu z wybranym Systemem Zarządzania Bazą Danych. Statement createStatement () - tworzy wyrażenie PreparedStatement prepareStatement (String stm) - tworzy prekompilowane wyrażenie o treści stm void setAutoCommit (boolean b) - ustawia automatyczne potwierdzanie na b void commit () - potwierdza wszystkie nie potwierdzone, a wykonane zapytania dla tego połączenia void rollback () - cofa wszystkie nie potwierdzone zapytania dla tego połączenia void close () - zamyka to połączenie Statement -reprezentuje medium, służące do transmisji wszelkich zleceń do bazy danych (operacji SQL). ResultSet executeQuery (String query) - wykonuje zapytanie o treści query int executeUpdate (String query) - wykonuje aktualizację o treści query boolean execute (String query) - wykonuje zapytanie lub aktualizację o treści query ResultSet getResultSet () - zwraca zbiór wynikowy ostatniego zapytania> ResultSet - Klasa ta reprezentuje podstawową strukturę danych wynikowych dla zapytań SQL. boolean next () - ustawia znacznik na następny wiersz XXX getXXX (int columnNumber) - zwraca wartość z kolumny columnNumber o typie XXX XXX getXXX (String columnName) - zwraca wartość z kolumny o nazwie columnName o typie XXX Zakończenie Statement.close() Connection.close() HIBERNATE Program umożliwiający mapowanie obiektowo-relacyjne Hibernate pozwala tworzyć bazodanowe aplikacje bez specjalnego wgłębiania się w struktury baz danych, a jedynie operując na zwykłych obiektach Javy. sam przekształca klasy Javy w tabele bazy danych oraz konwersję typów pomiędzy Javą, a typami bazy, posiada własny język zapytań (HQL), będący obiektowym rozszerzeniem standardowego SQL. Hibernate pracuje na zwykłych obiektach Javy, tzw. POJO (Plain Old Java Object). Zaletą Hibernate jest współpraca z wieloma bzami danych. Schemat działania systemu HIBERNATE Współpraca pomiedzy HIBERNATE'em i klasami Javy jest zapewniona dzieki zastosowaniu tzw. mapowania. Serwis ten redukuje do minimum czynności jakie programista musi wykonać chcąc się połączyć i współpracować z bazą danych. Za pomocą jednego pliku konfiguracyjnego można zapewnić współprace z różnymi bazami danych: Architektura Hibernate Elementy: 1 – zarządzanie połączeniem Usługa ta zapewnia efektywne zarządzanie połączeniami bazy danych. 2 – zarządzanie transakcją Usługa zarządzania transakcją zapewnia możliwość dla użytkownika do wykonania więcej niż jednej instrukcji bazy danych w czasie. 3 – Odwzorowanie obiektowo – relacyjne Odwzorowanie obiektowo – relacyjne to technika odwzorowania reprezentacji danych z modelu obiektowego do modelu relacyjnego danych. Ta część (hibernacji) Hibernate’a jest używana do select (wybierania), insert (wstawiania), update (aktualizowania) i delete (usuwania ) rekordów z odpowiedniej tabeli. Hibernate Query Language- dlaczego go używamy ? HQL jest oparty na modelach relacyjno obiektowych i wytwarza obiektowy SQL. HQL używa klas i własności zamiast tabel i kolumn. HQL jest wyjątkowo rozbudowany, efektywny i realizuje polimorfizm, powiązania, bardziej rozwlekle