Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood



Podobne dokumenty
T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Wprowadzenie do Doctrine ORM

Załącznik Nr 5 do Zarz. Nr 33/11/12

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Wdrożenie do projektu

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Programowanie obiektowe

Programowanie wielowarstwowe i komponentowe

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009

Kurs programowania aplikacji bazodanowych

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Microsoft SQL Server Podstawy T-SQL

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Podstawy frameworka Spring

Podstawowe wykorzystanie Hibernate

Backend Administratora

Podejście obiektowe do relacyjnych baz danych Hibernate.

EJB 3.0 (Enterprise JavaBeans 3.0)

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Aplikacje Internetowe, Servlety, JSP i JDBC

1 Instalowanie i uaktualnianie serwera SQL Server

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Kurs programowania aplikacji bazodanowych

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Oracle11g: Wprowadzenie do SQL

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2

Relacyjne bazy danych. Podstawy SQL

Java Persistence API - zagadnienia zaawansowane

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

SZKOLENIE TWORZENIE SYSTEMÓW

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Szkolenie autoryzowane. MS SharePoint Online Power User. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Microsoft Official Academic Course. Linda Silva. Microsoft Word Egzamin

Metody dostępu do danych

Bazy danych Access KWERENDY

Programowanie MorphX Ax

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Szkolenie autoryzowane. MS Zaawansowany użytkownik programu SharePoint 2016

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Spis treści. Lekcja 1: Podstawy baz danych 1. Lekcja 2: Tworzenie tabel bazy danych 31. Umiejętności do zdobycia w tej lekcji 31

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz

Gdzie jest moja tabela?

1 Wprowadzenie do J2EE

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Relacyjne bazy danych. Podstawy SQL

Microsoft SharePoint 2013 : krok po kroku / Olga M. Londer, Penelope Coventry. Warszawa, Spis treści. O autorkach.

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

ECDL/ICDL Zarządzanie projektami Moduł S5 Sylabus - wersja 1.0

Baza danych sql. 1. Wprowadzenie

Oracle PL/SQL. Paweł Rajba.

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Hurtownie danych - przegląd technologii

Microsoft SharePoint 2013 Krok po kroku

Enterprise JavaBean 3.0

P o d s t a w y j ę z y k a S Q L

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Copyright 2002 by John Stevens by arrangement with Shambhala Publications, Inc., 300 Massachusetts Avenue, Boston, MA 02115, U.S.A.

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie w języku Java WYKŁAD

Symfonia Produkcja. Kreator raportów. Wersja 2013

PHP: bazy danych, SQL, AJAX i JSON

System imed24 Instrukcja Moduł Analizy i raporty

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Programowanie obiektowe

Microsoft Project 2010

Przestrzenne bazy danych Podstawy języka SQL

Metody dostępu do danych

SIECI KOMPUTEROWE I BAZY DANYCH

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Część I Rozpoczęcie pracy z usługami Reporting Services

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Joyce Cox Joan Lambert. Microsoft Access Krok po kroku. Przekład: Jakub Niedźwiedź

Oracle PL/SQL. Paweł Rajba.

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Przykładowa baza danych BIBLIOTEKA

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

JAVA PERSISTENCE API. Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika. Waldemar Korłub

MCSA: SQL Server 2012

Transkrypt:

Hibernate Od Nowicjusza do Profesjonalisty Dave Minter Jeff Linwood

Beginning Hibernate: From Novice to Professional ISBN-13 (pbk): 978-1-59059-693-7 ISBN-10 (pbk): 1-59059-693-5 Original edition Copyright 2006 by Dave Minter, Jeff Linwood All rights reserved. Hibernate. Od Nowicjusza do Profesjonalisty ISBN: 978-83-924603-0-5 Polish edition Copyright 2007 by Power Net All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher Wszelkie prawa zastrzeżone. Żadna część niniejszej publikacji nie może być powielana ani transmitowana w jakiejkolwiek formie ani jakimikolwiek środkami, elektronicznymi czy mechanicznymi, łącznie z kopiowaniem, nagrywaniem, a także jakimkolwiek systemem przechowywania czy pobierania informacji, bez wcześniejszej pisemnej zgody wydawcy i właściciela praw autorskich. W niniejszej książce mogą pojawić się nazwy firmowe. Zamiast używać znaku firmowego przy każdym wystąpieniu nazwy zastrzeżonej, stosujemy nazwy z korzyścią dla właścicieli znaków firmowych, bez zamiaru naruszenia praw do nazwy firmowej. Java i wszystkie znaki oparte na Javie są znakami firmowymi Sun Microsystems, Inc. w Stanach Zjednoczonych i innych krajach. Wydawnictwo Apress, Inc. nie jest powiązane z Sun Microsystems, Inc., a książka ta została napisana bez zatwierdzenia ze strony Sun Microsystems, Inc. Chociaż dołożono wszelkich starań podczas przygotowywania tej publikacji, jednak zarówno autorzy, jak i tłumacz oraz wydawnictwa Apress i Power Net nie ponoszą odpowiedzialności w związku z ewentualnymi stratami lub szkodami wywołanymi pośrednio bądź bezpośrednio poprzez wykorzystanie informacji zawartych w niniejszej książce. Kod źródłowy dla tej książki jest dostępny dla czytelników na stronie http://www.apress.com w dziale Source Code.

Spis treści Nota o autorach..................................................... xiii Nota o konsultancie merytorycznym....................................... xv Podziękowania...................................................... xvii Wstęp............................................................ xix nrozdział 1 Hibernate 3. Wprowadzenie................................ 1 Plain Old Java Objects (POJO)............................... 1 Początki Hibernate a i odwzorowań obiektowo-relacyjnych............ 3 EJB jako rozwiązanie problemu trwałości................... 5 Hibernate jako rozwiązanie problemu trwałości............... 5 Cienkie rozwiązanie?................................. 6 Przykład Witaj świecie!................................... 6 Odwzorowania.......................................... 7 Generowanie bazy danych.................................. 8 Hibernate 3 a EJB 3.0..................................... 9 Podsumowanie.......................................... 9 nrozdział 2 Integracja i konfiguracja Hibernate a......................... 11 Etapy integracji i konfiguracji Hibernate a....................... 11 Miejsce Hibernate a w aplikacji Javy.......................... 12 Wdrażanie frameworka Hibernate............................ 13 Biblioteki wymagane do uruchomienia Hibernate a 3........... 13 Adnotacje i Enterprise JavaBeans 3...................... 14 JMX i Hibernate.................................... 14 Konfiguracja Hibernate a.................................. 15 Właściwości Hibernate a.............................. 16 Konfiguracja XML................................... 20 Dokumenty odwzorowań.............................. 22 Strategia nazewnicza................................ 23 Korzystanie ze źródła danych zarządzanego przez kontener..... 24 Fabryka sesji.......................................... 25 Dialekty SQL.......................................... 26 Podsumowanie........................................ 27 v

vi SPIS TREŚ CI nrozdział 3 Tworzenie prostej aplikacji............................... 29 Instalowanie narzędzi.................................... 29 Hibernate i Hibernate Tools............................ 29 HSQLDB 1.8.0..................................... 30 Ant 1.6.5......................................... 30 Zadania narzędzia Ant............................... 34 Umożliwianie logowania.............................. 35 Tworzenie pliku konfiguracyjnego Hibernate a.................... 35 Uruchamianie przykładu Message........................... 38 Utrwalanie wielu obiektów................................. 40 Tworzenie trwałych klas................................... 41 Tworzenie odwzorowań obiektów............................ 45 Tworzenie tabel........................................ 48 Sesje............................................... 51 Sesja i powiązane wzajemnie obiekty..................... 51 Korzystanie z sesji.................................. 53 Tworzenie obiektów dostępu do danych (DAO)................... 55 Przykładowy klient...................................... 60 Podsumowanie......................................... 64 nrozdział 4 Cykl życia trwałych obiektów............................. 65 Podstawowe informacje o cyklu życia......................... 65 Encje, klasy i nazwy..................................... 66 Identyfikatory.......................................... 67 Encje i asocjacje....................................... 67 Zapisywanie encji...................................... 72 Równość i tożsamość obiektu.............................. 73 Wczytywanie encji...................................... 73 Odświeżanie encji...................................... 75 Aktualizowanie encji..................................... 75 Usuwanie encji......................................... 76 Operacje kaskadowe.................................... 77 Opóźnione wczytywanie, obiekty pośredniczące i obiekty Opakowujące. 78 Zapytywanie obiektów.................................... 80 Podsumowanie......................................... 80 nrozdział 5 Wprowadzenie do odwzorowań............................ 81 Dlaczego odwzorowania nie mogą być automatyczne.............. 82 Klucze podstawowe..................................... 84 Opóźnione wczytywanie.................................. 86 Asocjacje............................................ 86 Relacja jeden do jednego............................ 88 Relacje typu jeden do wielu i wiele do jednego............ 90

SPIS TREŚ CI vii Relacja wiele do wielu............................... 91 Zastosowanie odwzorowań w asocjacjach.................. 92 Rodzaje odwzorowań.................................... 92 Pozostałe informacje reprezentowane w odwzorowaniach........... 93 Charakterystyka rodzajów i rozmiarów kolumn............... 93 Odwzorowania związków dziedziczenia................... 93 Klucz podstawowy.................................. 93 Korzystanie z właściwości opartych na formule SQL........... 93 Obowiązkowe i unikatowe ograniczenia.................... 94 Kaskadowanie operacji............................... 94 Podsumowanie........................................ 94 nrozdział 6 Odwzorowania z adnotacjami............................ 95 Funkcje Javy 5......................................... 95 Tworzenie odwzorowań Hibernate a z użyciem adnotacji............ 95 Minusy adnotacji................................... 96 Plusy adnotacji..................................... 96 Dokonywanie wyboru................................ 97 Używanie adnotacji w aplikacjach........................ 98 Adnotacje trwałości EJB 3............................. 98 Komponenty encji z @Entity............................ 104 Klucze podstawowe z @Id oraz @GeneratedValue............ 105 Generowanie wartości klucza podstawowego za pomocą @SequenceGenerator..................... 106 Generowanie wartości klucza podstawowego za pomocą @TableGenerator......................... 107 Złożone klucze podstawowe z @Id, @IdClass lub @EmbeddedId. 108 Odwzorowanie tabeli bazy danych za pomocą @Table i @SecondaryTable................................ 114 Utrwalanie typów podstawowych za pomocą @Basic.......... 115 Pomijanie trwałości za pomocą @Transient................. 116 Odwzorowanie właściwości i pól za pomocą @Column......... 116 Modelowanie relacji pomiędzy encjami.................... 117 Dziedziczenie...................................... 124 Pozostałe adnotacje trwałości EJB 3...................... 127 Konfigurowanie adnotowanych klas........................... 130 Adnotacje trwałości charakterystyczne dla Hibernate a 3............ 131 @Entity.......................................... 134 Sortowanie kolekcji za pomocą @Sort.................... 135 Porządkowanie kolekcji za pomocą @IndexColumn........... 135 Stosowanie indeksów za pomocą @Table i @Index........... 135 Ograniczanie kolekcji za pomocą @Where................. 136 Inne strategie generowania klucza za pomocą @GenericGenerator............................... 136 Ant i odwzorowania oparte na adnotacjach..................... 137

viii SPIS TREŚ CI Kody................................................ 138 Podsumowanie......................................... 143 nrozdział 7 Tworzenie odwzorowań Hibernate w plikach XML.............. 145 Typy Hibernate a........................................ 145 Encje........................................... 145 Komponenty....................................... 145 Wartości......................................... 146 Budowa pliku konfiguracyjnego............................. 147 Element <hibernate-mapping>.......................... 147 Element <class>.................................... 150 Element <id>...................................... 153 Element <property>................................. 156 Element <component>............................... 158 Element <one-to-one>................................ 159 Element <many-to-one>.............................. 162 Elementy kolekcji................................... 165 Odwzorowywanie prostych klas............................. 173 Odwzorowywanie kompozycji............................... 175 Odwzorowywanie innych asocjacji........................... 178 Odwzorowywanie kolekcji................................. 181 Odwzorowywanie relacji dziedziczenia........................ 184 Jedna tabela na klasę konkretną........................ 184 Jedna tabela na podklasę............................. 185 Jedna tabela na hierarchię klas......................... 187 Bardziej egzotyczne odwzorowania........................... 188 Znacznik any...................................... 188 Znacznik array..................................... 189 Element <dynamic-component>......................... 189 Podsumowanie......................................... 189 nrozdział 8 Obiekt Session........................................ 191 Sesje............................................... 91 Transakcje i blokowanie................................... 194 Transakcje........................................ 195 Blokowanie....................................... 198 Zakleszczenia..................................... 199 Buforowanie podręczne.................................. 203 Wątki............................................... 206 Podsumowanie........................................ 206

SPIS TREŚ CI ix nrozdział 9 Wyszukiwanie i zapytania............................... 207 HQL............................................... 207 Podstawy składni...................................... 208 UPDATE........................................ 208 DELETE........................................ 208 INSERT........................................ 209 SELECT........................................ 209 Pierwszy przykład HQL.................................. 210 Logowanie używanego wyrażenia SQL....................... 214 Komentowanie wygenerowanego SQL................... 215 Klauzula from oraz nazwy zastępcze........................ 215 Klauzula select oraz projekcja............................. 216 Korzystanie z ograniczeń za pomocą HQL..................... 216 Nazwane parametry.................................... 217 Stronicowanie zbioru wynikowego........................... 219 Pobieranie pojedynczego wyniku........................... 219 Sortowanie wyników za pomocą klauzuli order by............... 220 Asocjacje............................................ 220 Metody agregujące................................. 221 HQL i zbiorcze operacje aktualizacji oraz usuwania.............. 222 Nazwane zapytania w HQL i SQL........................... 223 Rdzenne wyrażenia SQL................................. 225 Podsumowanie........................................ 226 nrozdział 10 Zaawansowane zapytania z wykorzystaniem kryteriów......... 227 Criteria API.......................................... 227 Używanie ograniczeń za pomocą kryteriów................ 228 Stronicowanie zbioru wynikowego....................... 231 Pobieranie pojedynczego wyniku....................... 232 Sortowanie wyników zapytania......................... 232 Asocjacje........................................ 233 Wyniki bez powtórzeń............................... 234 Projekcje i agregaty................................ 234 Zapytanie poprzez przykład (QBE)...................... 236 Podsumowanie........................................ 238 nrozdział 11 Filtrowanie wyników wyszukiwania........................ 239 Kiedy korzystać z filtrów................................. 239 Definiowanie filtrów..................................... 240 Używanie filtrów w aplikacji............................... 241 Prosty przykład filtrowania................................ 241 Podsumowanie........................................ 246

x SPIS TREŚ CI ndodatek A Bardziej zaawansowane funkcje........................... 247 EJB 3 oraz EntityManager................................. 247 Zarządzane wersjonowanie i optymistyczne blokowanie............ 251 Relacyjna trwałość XML................................. 252 Dodawanie atrybutu node do odwzorowań................. 253 Eksportowanie encji XML............................. 254 Importowanie encji XML............................. 256 Czynniki, które należy uwzględnić podczas używania encji XML. 258 Mapy............................................... 258 Niedoskonałości Hibernate a.............................. 259 Ręcznie przewijany SQL................................. 260 Bezpośrednie odwzorowanie.......................... 260 Widok.......................................... 261 Umieszczanie SQL w odwzorowaniach................... 263 Wywoływanie procedur składowanych....................... 265 Zdarzenia........................................... 267 Przykładowy obiekt nasłuchujący zdarzeń................. 269 Obiekty przechwytujące................................. 271 Przykładowy obiekt przechwytujący..................... 273 Przesłanianie domyślnego konstruktora....................... 279 Podsumowanie........................................ 279 ndodatek B Hibernate Tools...................................... 281 Wtyczka Eclipse....................................... 281 Instalowanie wtyczki................................ 282 Konfiguracja szablonowego projektu..................... 284 Hibernate Konsole................................. 287 Zadania Anta......................................... 300 Jak działają zadania Anta............................ 301 Inżynieria wsteczna................................. 308 Szablony........................................ 312 Konfigurowanie ścieżki klas........................... 314 Podsumowanie........................................ 315 ndodatek C Hibernate i Spring..................................... 317 Biblioteki Springa....................................... 317 Konfigurowanie frameworka Hibernate z aplikacji Springa........... 318 Używanie Hibernate a w komponentach Springa.............. 321 Deklaratywne zarządzanie transakcjami................... 324 Zarządzanie sesją..................................... 326 Przykładowy plik konfiguracyjny............................ 327 Podsumowanie........................................ 330

SPIS TREŚ CI xi ndodatek D Aktualizacja Hibernate a 2............................... 331 Zmiany w pakietach i DTD................................ 331 Nowe funkcje i obsługa starych funkcji....................... 333 Zmiany i niezalecane funkcje.......................... 333 Dodatki......................................... 334 Zmiany narzędzi i bibliotek................................ 335 Zmiany Javy 5........................................ 335 Podsumowanie........................................ 335 nskorowidz.................................................... 337