java-data-objects scan.pdf

(18332 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Java Data Objects
SPIS TRECI
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
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
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æ
programici
• 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³oci i standardowych interfejsów umo¿liwiaj¹cych
korzystanie z baz danych. Ksi¹¿ka ta jest wszechstronnym przewodnikiem po
zagadnieniach trwa³oci 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 przejcia 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™.
Jeli chcesz powiêciæ wiêcej czasu na rozwi¹zywanie zagadnieñ biznesowych,
a mniej traciæ na zajmowanie siê problemem trwa³oci, to potrzebujesz w³anie 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³oci¹ 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.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
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
811627232.016.png 811627232.017.png 811627232.018.png 811627232.019.png 811627232.001.png 811627232.002.png 811627232.003.png 811627232.004.png 811627232.005.png 811627232.006.png 811627232.007.png 811627232.008.png 811627232.009.png 811627232.010.png 811627232.011.png 811627232.012.png 811627232.013.png 811627232.014.png 811627232.015.png
 
Spis treci
O Autorach...................................................................................................................................................13
Przedmowa.................................................................................................................................................15
Wstp..........................................................................................................................................................23
Cz I Wprowadzenie
25
Rozdział 1. Przegld 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 dotyczce 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" serializacj1? .......................................................................... 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. Bezpiecze9stwo............................................................................................. 53
2.3.5. Translacja j1zyka zapyta9 ............................................................................... 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 dost1p 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 nawigacj1 .......................................................................... 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. ToAsamo!" obiektów ............................................................................................ 93
3.12. Typy toAsamo!ci obiektów .................................................................................... 94
3.12.1. ToAsamo!" na poziomie bazy danych ............................................................ 95
3.12.2. ToAsamo!" na poziomie aplikacji .................................................................. 95
3.12.3. ToAsamo!" nietrwała ................................................................................... 98
3.13. Cykl Aycia obiektu ................................................................................................ 98
3.14. Sterowanie współbieAno!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 Aycia 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 Aycia obiektu...................................................................... 107
4.2. Informacja o stanie obiektu .................................................................................. 108
4.3. Operacje powoduj(ce zmian1 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. ToAsamo!" obiektów.................................................................................... 130
5.1.7. Cykl Aycia 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 toAsamo!ci ...................................................... 191
6.2. Wyszukiwanie zbioru obiektów za pomoc( ekstensji................................................ 193
6.3. Wyszukiwanie obiektów za pomoc( zapyta9 ........................................................... 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 polece9 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. Wi1cej o interfejsie Query ..................................................................................... 208
6.6.1. Tworzenie zapyta9 ....................................................................................... 209
6.6.2. Zapytania i buforowanie ............................................................................... 209
6.6.3. Zapytania skompilowane .............................................................................. 210
6.6.4. Szablony zapyta9 ......................................................................................... 210
6.6.5. Wybór innego j1zyka zapyta9......................................................................... 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