Java Data Objects.pdf

(760 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
Java Data Objects
Autorzy: Sameer Tyagi, Keiron McCammon,
Michael Vorburger, Heiko Bobzin
T³umaczenie: Jaromir Senczyk
ISBN: 83-7361-392-7
Tytu³ orygina³u:
Core Java Data Objects
Format: B5, stron: 456
Przyk³ady na ftp: 107 kB
Ksi¹¿ka „Java Data Objects”:
• Demonstruje praktyczne techniki stosowane przez zawodowych programistów
• Zawiera poprawny, gruntownie przetestowany kod ród³owy programów oraz
przyk³ady zaczerpniête z praktyki
• Skoncentrowana jest na nowoczesnych technologiach, które musz¹ poznaæ
programi ci
• Zawiera rady profesjonalistów, które pozwol¹ czytelnikowi tworzyæ najlepsze
programy
Java Data Objects (JDO) przyspiesza tworzenie aplikacji w Javie dostarczaj¹c
obiektowego mechanizmu trwa³o ci i standardowych interfejsów umo¿liwiaj¹cych
korzystanie z baz danych. Ksi¹¿ka ta jest wszechstronnym przewodnikiem po
zagadnieniach trwa³o ci JDO, przeznaczony dla zaawansowanego programisty.
Korzystaj¹c z realistycznych przyk³adów kodu autorzy przedstawiaj¹ sposoby
tworzenia, pobierania, aktualizacji i usuwania obiektów trwa³ych, cykl ¿ycia obiektów
i przej cia pomiêdzy stanami, klasy i interfejsy JDO, zapytania, architekturê, problemy
bezpieczeñstwa i wiele innych zagadnieñ. Prezentuj¹ sposoby integracji JDO z EJB™,
JTA, JCA i innymi technologiami J2EE™, omawiaj¹ te¿ najlepsze sposoby
wykorzystania JDO przez samodzielne aplikacje oraz komponenty J2EE™.
Je li chcesz po wiêciæ wiêcej czasu na rozwi¹zywanie zagadnieñ biznesowych,
a mniej traciæ na zajmowanie siê problemem trwa³o ci, to potrzebujesz w³a nie JDO
i jednej dobrej ksi¹¿ki, która pomo¿e Ci efektywnie u¿yæ JDO: „Java Data Objects”.
• Omówienie specyfikacji JDO i podstawowych zagadnieñ zwi¹zanych
z trwa³o ci¹ obiektów
• Programowanie z u¿yciem JDO; najwa¿niejsze klasy i obiekty
• Cykl ¿ycia obiektów
• Wyszukiwanie danych w JDO
• Przyk³adowa architektura i jej konstrukcja z u¿yciem JDO
• JDO a J2EE: JCA, EJB, transakcje, bezpieczeñstwo
• Porównanie JDO z JDBC
• Przysz³o æ JDO i rozwój tej specyfikacji
• Studium przypadku
Uzupe³nieniem s¹ liczne dodatki omawiaj¹ce miêdzy innymi: stany JDO, metadane,
jêzyk JDOQL w notacji BNF i dostêpne implementacje JDO.
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorach...................................................................................................................................................13
Przedmowa .................................................................................................................................................15
Wstęp.......................................................................................................................................................... 23
Część I Wprowadzenie
25
Rozdział 1. Przegląd specyfikacji JDO...................................................................................................... 27
1.1. Powstanie specyfikacji JDO..................................................................................... 27
1.2. Obiektowy model dziedziny ..................................................................................... 27
1.3. Trwałość ortogonalna ............................................................................................. 30
1.3.1. Obiekty trwałe i obiekty ulotne ........................................................................ 33
1.4. Środowiska zarządzane i niezarządzane ................................................................... 36
1.4.1. Środowiska niezarządzane.............................................................................. 36
1.4.2. Środowiska zarządzane .................................................................................. 36
1.5. Role i obowiązki..................................................................................................... 37
1.5.1. Specyfikacje JDO ........................................................................................... 38
1.5.2. Obowiązki programisty ................................................................................... 38
1.5.3. Obowiązki producenta .................................................................................... 40
1.6. Podsumowanie ...................................................................................................... 41
Rozdział 2. Podstawowe zagadnienia dotyczące trwałości obiektów .................................................. 43
2.1. Trwałość i aplikacje................................................................................................ 43
2.2. Serializacja binarna JDK ......................................................................................... 44
2.2.1. Interfejs programowy serializacji...................................................................... 44
2.2.2. Zarządzanie wersjami i serializacja.................................................................. 46
2.2.3. Kiedy stosować serializację? .......................................................................... 47
2.2.4. Kiedy unikać stosowania serializacji? .............................................................. 48
2.3. Odwzorowania obiektowo-relacyjne .......................................................................... 48
2.3.1. Klasy i tablice................................................................................................ 49
2.3.2. Odwzorowania typów String, Date i innych........................................................ 50
2.3.3. Odwzorowanie dziedziczenia ........................................................................... 51
4
Java Data Objects
2.3.4. Bezpieczeństwo............................................................................................. 53
2.3.5. Translacja języka zapytań ............................................................................... 54
2.3.6. Spójność referencyjna, usuwanie obiektów i inne zagadnienia ........................... 54
2.3.7. Trwałość transparentna i odwzorowania O/R.................................................... 54
2.3.8. Identyfikacja.................................................................................................. 55
2.4. Tworzenie własnej warstwy odwzorowania O/R ......................................................... 56
2.4.1. Buforowanie .................................................................................................. 56
2.4.2. Transakcyjny dostęp do bazy i obiekty transakcyjne .......................................... 57
2.4.3. Blokowanie ................................................................................................... 58
2.4.4. Tablice, zbiory, listy i mapy ............................................................................. 58
2.4.5. Efektywność .................................................................................................. 59
2.4.6. Tworzyć samodzielnie czy kupować?................................................................ 59
2.5. Wnioski................................................................................................................. 60
Część II Szczegóły
63
Rozdział 3. Rozpoczynamy programowanie z u yciem JDO .................................................................. 65
3.1. Jak działa JDO? ..................................................................................................... 66
3.2. Podstawy JDO........................................................................................................ 69
3.3. Definiowanie klasy ................................................................................................. 70
3.3.1. Metadane JDO............................................................................................... 71
3.3.2. Odwzorowanie klasy do bazy danych................................................................ 72
3.4. Połączenie do bazy danych ..................................................................................... 72
3.5. Tworzenie obiektu .................................................................................................. 74
3.6. Wczytywanie obiektu .............................................................................................. 76
3.6.1. Wczytywanie przez nawigację .......................................................................... 76
3.6.2. Wczytywanie za pomocą interfejsu Extent ........................................................ 77
3.6.3. Wczytywanie przez zapytanie........................................................................... 78
3.7. Aktualizacja obiektu ............................................................................................... 79
3.8. Usuwanie obiektu .................................................................................................. 80
3.9. Model obiektowy JDO ............................................................................................. 82
3.9.1. Typy podstawowe........................................................................................... 82
3.9.2. Referencje .................................................................................................... 83
3.9.3. Klasy kolekcji ................................................................................................ 87
3.9.4. Tablice.......................................................................................................... 89
3.9.5. Dziedziczenie ................................................................................................ 90
3.9.6. Modyfikatory.................................................................................................. 91
3.9.7. Ograniczenia JDO........................................................................................... 92
3.10. Obsługa wyjątków ................................................................................................ 92
3.11. Tożsamość obiektów ............................................................................................ 93
3.12. Typy tożsamości obiektów .................................................................................... 94
3.12.1. Tożsamość na poziomie bazy danych ............................................................ 95
3.12.2. Tożsamość na poziomie aplikacji .................................................................. 95
3.12.3. Tożsamość nietrwała ................................................................................... 98
3.13. Cykl życia obiektu ................................................................................................ 98
3.14. Sterowanie współbieżnością ................................................................................. 99
3.14.1. Transakcje ACID ........................................................................................ 100
3.14.2. Transakcje optymistyczne........................................................................... 100
3.15. Podsumowanie .................................................................................................. 101
Spis treści
5
Rozdział 4. Cykl ycia obiektów...............................................................................................................103
4.1. Cykl życia obiektu trwałego ................................................................................... 103
4.1.1. Utrwalanie obiektu ....................................................................................... 104
4.1.2. Odtwarzanie obiektów z bazy danych ............................................................. 105
4.1.3. Uproszczony cykl życia obiektu...................................................................... 107
4.2. Informacja o stanie obiektu .................................................................................. 108
4.3. Operacje powodujące zmianę stanu....................................................................... 109
4.3.1. PersistenceManager.makePersistent ............................................................ 110
4.3.2. PersistenceManager.deletePersistent ........................................................... 110
4.3.3. PersistenceManager.makeTransient.............................................................. 110
4.3.4. Transaction.commit ..................................................................................... 110
4.3.5. Transaction.rollback..................................................................................... 110
4.3.6. PersistenceManager.refresh......................................................................... 110
4.3.7. PersistenceManager.evict ............................................................................ 111
4.3.8. Odczyt pól wewnątrz transakcji...................................................................... 111
4.3.9. Zapis pól wewnątrz transakcji ....................................................................... 111
4.3.10. PersistenceManager.retrieve ...................................................................... 111
4.4. Wywołania zwrotne............................................................................................... 111
4.4.1. Zastosowania metody jdoPostLoad ............................................................... 112
4.4.2. Zastosowania metody jdoPreStore ................................................................ 113
4.4.3. Zastosowania metody jdoPreDelete............................................................... 114
4.4.4. Zastosowania metody jdoPreClear................................................................. 115
4.5. Stany opcjonalne ................................................................................................. 115
4.5.1. Ulotne instancje transakcyjne ....................................................................... 116
4.5.2. Zastosowania ulotnych instancji transakcyjnych ............................................. 117
4.5.3. Instancje nietransakcyjne ............................................................................. 117
4.5.4. Transakcje optymistyczne............................................................................. 119
4.6. Przykłady ............................................................................................................. 120
4.7. Podsumowanie .................................................................................................... 124
Rozdział 5. Programowanie w JDO .........................................................................................................125
5.1. Koncepcje JDO .................................................................................................... 125
5.1.1. Zdolność do trwałości .................................................................................. 126
5.1.2. Metadane JDO............................................................................................. 126
5.1.3. Domyślna grupa pobierania .......................................................................... 128
5.1.4. Trwałość poprzez osiągalność....................................................................... 128
5.1.5. Obiekty klas pierwszej i drugiej kategorii........................................................ 129
5.1.6. Tożsamość obiektów.................................................................................... 130
5.1.7. Cykl życia obiektu ........................................................................................ 130
5.1.8. Transakcje .................................................................................................. 131
5.2. Interfejsy i klasy JDO ............................................................................................ 135
5.3. Podstawowe interfejsy JDO ................................................................................... 138
5.3.1. javax.jdo.PersistenceManagerFactory ............................................................ 138
5.3.2. PersistenceManager .................................................................................... 148
5.3.3. Extent......................................................................................................... 165
5.3.4. Query.......................................................................................................... 167
5.3.5. Transaction ................................................................................................. 174
5.3.6. InstanceCallbacks ....................................................................................... 180
5.4. Klasy wyjątków .................................................................................................... 182
5.4.1. JDOException .............................................................................................. 183
5.4.2. JDOFatalException ....................................................................................... 183
6
Java Data Objects
5.4.3. JDOFatalUserException ................................................................................ 183
5.4.4. JDOFatalInternalException ............................................................................ 184
5.4.5. JDOFatalDataStoreException ........................................................................ 184
5.4.6. JDOOptimisticVerificationException ............................................................... 184
5.4.7. JDOCanRetryException ................................................................................. 184
5.4.8. JDOUnsupportedOptionException .................................................................. 184
5.4.9. JDOUserException ....................................................................................... 185
5.4.10. JDODataStoreException ............................................................................. 185
5.4.11. JDOObjectNotFoundException ..................................................................... 185
5.5. Dodatkowe interfejsy............................................................................................ 185
5.5.1. Klasa JDOHelper ......................................................................................... 185
5.5.2. Klasa I18NHelper ........................................................................................ 187
5.6. SPI ..................................................................................................................... 187
5.6.1. PersistenceCapable ..................................................................................... 188
5.6.2. JDOPermission ............................................................................................ 188
5.6.3. JDOImplHelper ............................................................................................ 188
5.6.4. StateManager ............................................................................................. 189
5.7. Podsumowanie .................................................................................................... 189
Rozdział 6. Wyszukiwanie danych............................................................................................................191
6.1. Wyszukiwanie obiektu na podstawie tożsamości ...................................................... 191
6.2. Wyszukiwanie zbioru obiektów za pomocą ekstensji................................................ 193
6.3. Wyszukiwanie obiektów za pomocą zapytań ........................................................... 194
6.3.1. Zapytania dla ekstensji ................................................................................ 197
6.4. JDOQL ................................................................................................................ 197
6.4.1. Specyfikacja filtrów ...................................................................................... 199
6.5. Zapytania, filtry i parametry opcjonalne.................................................................. 204
6.5.1. Deklaracje parametrów ................................................................................ 204
6.5.2. Deklaracje poleceń importu .......................................................................... 206
6.5.3. Deklaracje zmiennych .................................................................................. 206
6.5.4. Uporządkowanie wyników zapytania............................................................... 207
6.5.5. Przestrzenie nazw w zapytaniach................................................................... 208
6.6. Więcej o interfejsie Query ..................................................................................... 208
6.6.1. Tworzenie zapytań ....................................................................................... 209
6.6.2. Zapytania i buforowanie ............................................................................... 209
6.6.3. Zapytania skompilowane .............................................................................. 210
6.6.4. Szablony zapytań ......................................................................................... 210
6.6.5. Wybór innego języka zapytań......................................................................... 212
6.7. Podsumowanie .................................................................................................... 212
Rozdział 7. Scenariusze i architektury ..................................................................................................213
7.1. JDO i JDBC .......................................................................................................... 213
7.2. Rodzaje baz danych ............................................................................................. 214
7.2.1. JDO i relacyjne bazy danych .......................................................................... 215
7.2.2. JDO i obiektowe bazy danych ........................................................................ 216
7.2.3. Porównania baz danych ................................................................................ 216
7.3. J2EE, RMI i CORBA .............................................................................................. 217
7.4. Środowiska zarządzane i niezarządzane ................................................................. 218
7.4.1. Zarządzanie połączeniami............................................................................. 219
7.4.2. Zarządzanie transakcjami ............................................................................. 220
Zgłoś jeśli naruszono regulamin