Czym jest JDBC

advertisement
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
Download