Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009

Wielkość: px
Rozpocząć pokaz od strony:

Download "Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009"

Transkrypt

1 Konfiguracja i poprawne stosowanie Politechnika Wrocławska Informatyka 11 maja 2009

2 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

3 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

4 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

5 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie 4 Poprawne korzystanie z - wzorzec DAO 5 Podstawowe mapowania 6 Zaawansowane mapowania 7 Konstruowanie zapytań w języku HQL 8 Zaawansowane zapytania 9

6 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

7 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

8 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Persystencja danych w aplikacjach obiektowych Persystencja danych oznacza, że żyją one dłużej niż aplikacja, która z nich korzysta. Pozwala ona na zapisanie i odtworzenie stanu całych sieci obiektów. Wybór sposobu zarządzania danymi persystentnymi jest jedną z kluczowych decyzji projektowych. W chwili obecnej najpopularniejszą technologią stosowaną do przechowywania utrwalanych danych są relacyjne bazy.

9 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

10 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

11 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

12 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów Niezgodność paradygmatu obiektowego z paradygmatem relacyjnym (object/relational paradigm mismatch). Nowoczesne języki programowania opierają się na modelu obiektowym - dane są reprezentowane przy pomocy sieci obiektów Najpopularniejszą metodą utrwalania (persystencji) danych relacyjne bazy, w których do ich reprezentacji wykorzystywane są tabele Sprzeczność tych modeli jest przyczyną wielu problemów w procesie wytwarzania nowoczesnego oprogramowania.

13 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

14 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

15 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

16 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

17 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Niezgodność paradygmatów - główne problemy Niezgodność tych paradygmatów jest przyczyną następujących problemów [1]: 1 Problem zakresu typów (ziarnistości) 2 Problem dziedziczenia i polimorfizmu 3 Problem tożsamości (identyczności) 4 Problemy powiązań (asocjacji) 5 Problem dostępu do danych

18 Konfiguracja i poprawne stosowanie Czym jest ORM? Wprowadzenie do ORM jako narzędzie ORM ORM (Object/Relational Mapping) jest obecnie uznawane za najlepsze rozwiązanie problemów wynikających z niezgodności paradygmatów obiektowego i relacyjnego. ORM zapewnia automatyczną i przeźroczystą persystencję obiektów w relacyjnej baze danych. ORM wykorzystuje metadane, które służą do opisywania mapowań zachodzacych między klasami a tabelami [1].

19 Konfiguracja i poprawne stosowanie Czym jest ORM? Wprowadzenie do ORM jako narzędzie ORM ORM (Object/Relational Mapping) jest obecnie uznawane za najlepsze rozwiązanie problemów wynikających z niezgodności paradygmatów obiektowego i relacyjnego. ORM zapewnia automatyczną i przeźroczystą persystencję obiektów w relacyjnej baze danych. ORM wykorzystuje metadane, które służą do opisywania mapowań zachodzacych między klasami a tabelami [1].

20 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

21 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

22 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

23 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Historia jest najpopularniejszym narzędziem wspierającym ORM. Do głównych przyczyn jego popularności możemy zaliczyć: Jest darmowy i rozwijany na licencji open source Inicjatorem i liderem projektu jest Gavin King Pierwsze wydanie zostało udostępnione w 2001 roku Najnowsze wydanie projektu ma wersję 3.3.1

24 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

25 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

26 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

27 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

28 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

29 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

30 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

31 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

32 Konfiguracja i poprawne stosowanie Wprowadzenie do ORM jako narzędzie ORM Podział Core Annotations EntityManager Shards Validator Search Tools N

33 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja w projekcie Aby móc używać w naszym projekcie, musimy dołączyć do niego m.in. następujące biblioteki: hibernate3.jar hibernate-annotations.jar hibernate-entitymanager.jar Dwie ostatnie biblioteki są niezbędne, jeżeli chcemy wykorzystywać do mapowania adnotacje.

34 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja w projekcie Aby móc używać w naszym projekcie, musimy dołączyć do niego m.in. następujące biblioteki: hibernate3.jar hibernate-annotations.jar hibernate-entitymanager.jar Dwie ostatnie biblioteki są niezbędne, jeżeli chcemy wykorzystywać do mapowania adnotacje.

35 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja - mapowania XML Dla każdej z klas, które chcemy poddać procesowi mapowania, tworzony jest plik o nazwie: NAZWA KLASY.hbm.xml W pliku tym znajdują się metadane, które definiują m.in. w jaki sposób ma odwzorowywać obiekty tej klasy na tabele bazodanowe. Jest on umieszczony w tym samym katalogu co plik klasy. Dane związane z konfiguracją samego umieszczamy w pliku hibernate.cfg.xml, który musi zostać umieszczony bezpośrednio w katalogu źródłowym projektu poza wszelkimi pakietami.

36 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Konfiguracja - mapowania za pomocą adnotacji W przypadku wykorzystania adnotacji do wykonania mapowań nie musimy tworzyć plików hbm.xml. Adnotacje umieszczamy bezpośrednio w plikach źródłowych klasy, którą mapujemy. Dane związane z konfiguracją są tym razem zawarte w pliku persistence.xml, który musi zostać umieszczony w katalogu META-INF.

37 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

38 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

39 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

40 Konfiguracja i poprawne stosowanie Konfiguracja Poprawne stosowanie Wykorzystywanie dostarczanych interfejsów (a także JPA) dostarcza nam szereg klas i interfejsów, które powinniśmy wykorzystywać w operacjach związanych z persystencją danych i wymagających komunikacji z bazą danych. Do najważniejszych zaliczamy: SessionFactory (EntityManagerFactory - służy do tworzenia obiektów Session (EntityManager) Session (EntityManager) - reprezentuje poszczególną jednostkę pracy z bazą danych - służy m.in. do zapisywania i ładowania obiektów Query (Query) - API używane do tworzenia i wykonywania zapytań do bazy danych Transaction (EntityTransaction - API używane do programistycznej demarkacji transakcji

41 Konfiguracja i poprawne stosowanie Wykorzystywanie narzędzia hbm Konfiguracja Poprawne stosowanie dostarcza nam narzędzie, które na podstawie plików źródłowych oraz związanych z nim metadanych jest w stanie automatycznie wygenerować schemat bazy danych. Istnieje także możliwość tzw. reverse engineering - to jest wygenerowania na podstawie schematu bazy danych klas wchodzących w skład modelu dziedzinowego, plików z mapowaniami, pliku konfiguracyjnego, a nawet klas odpowiedzialnych za dostęp do danych.

42 Konfiguracja i poprawne stosowanie Wzorzec DAO Konfiguracja Poprawne stosowanie Wzorzec DAO - struktura [1]

43 Konfiguracja i poprawne stosowanie Wzorzec DAO Konfiguracja Poprawne stosowanie Ta wersja wzorca DAO wykorzystuje mechanizm wprowadzone w Java 5 - typy generyczne. Opiera się na dwóch równoległych hierarchiach dziedziczenia. Wszelka operacje wymagające komunikacji z baza danych powinny być wykonywane z wykorzystaniem odpowiednich obiektów DAO.

44 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

45 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

46 Konfiguracja i poprawne stosowanie Sposoby mapowania Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Deskryptor XML Adnotacje Równoważność sposobów mapowania

47 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie zewnętrzne - deskryptor XML Zalety: Wady: Wszystkie elementy mapowania znajdują się w jednym miejscu - zmiana całego mapowania Wymaga edytora XML dla czytelności Problem z cztelnością wraz z narastaniem mapowań

48 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie zewnętrzne - deskryptor XML Zalety: Wady: Wszystkie elementy mapowania znajdują się w jednym miejscu - zmiana całego mapowania Wymaga edytora XML dla czytelności Problem z cztelnością wraz z narastaniem mapowań

49 Konfiguracja i poprawne stosowanie Mapowanie adnotacjami Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Zalety: Mapowanie znajduje się tam gdzie mapowane dane Czytelność dla przeciętnego programisty Mapowanie przy polach lub getterach Wady: Adnotacje wprowadzono w Javie 1.5 Brak podpowiadania składni w IDE

50 Konfiguracja i poprawne stosowanie Mapowanie adnotacjami Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Zalety: Mapowanie znajduje się tam gdzie mapowane dane Czytelność dla przeciętnego programisty Mapowanie przy polach lub getterach Wady: Adnotacje wprowadzono w Javie 1.5 Brak podpowiadania składni w IDE

51 Konfiguracja i poprawne stosowanie Mapowanie encji Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 package...; 2 3 import javax. persistence. Entity ; 4 import javax. persistence. Table ; 5 ( name = " USERS ") 8 public class User { }

52 Konfiguracja i poprawne stosowanie Komponenty - obiekty osadzone Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Klasa osadzona: 1 package...; 2 3 import javax. persistence. Embeddable ; 4 6 public class Address { }

53 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Korzystanie z obiektów osadzonych Wykorzystanie klasy osadzonej: 1 import javax. persistence. Embeddable ; 2 3 public class User { private Address shippingaddress ; 7 9 public Address getshippingaddress () { 10 return shippingaddress ; 11 } }

54 Konfiguracja i poprawne stosowanie Podstawowe mapowanie pola Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Basic ; 2 3 public class User { private String ; 7 9 public String get () { 10 return ; 11 } }

55 Konfiguracja i poprawne stosowanie Mapowanie pola nieutrwalanego Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Transient ; 2 3 public class User { private String ; 7 9 public String get () { 10 return ; 11 } }

56 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie pola i ograniczenia UNIQUE 1 import javax. persistence. Column ; 2 3 public class User { private String username ; 7 ( name = " USER_NAME ", 9 unique = true, nullable = false, length = 30) 10 public String getusername () { 11 return username ; 12 } }

57 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Mapowanie ograniczenia PRIMARY KEY 1 import javax. persistence. Id; 2 3 public class User { private String username ; 7 9 public String getusername () { 10 return username ; 11 } }

58 Konfiguracja i poprawne stosowanie Generowanie klucza głównego Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. GeneratedValue ; 2 import javax. persistence. GenerationType ; 3 import javax. persistence. Id; 4 5 public class Item { private Long itemid ; 9 ( strategy = GenerationType. IDENTITY ) 12 public Long getitemid () { 13 return itemid ; 14 } }

59 Konfiguracja i poprawne stosowanie Związek 1-1 Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. OneToOne ; 2 3 public class Item { private Bid winningbid ; 7 9 public Bid getwinningbid () { 10 return winningbid ; 11 } }

60 Konfiguracja i poprawne stosowanie Związek n-1 Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. ManyToOne ; 2 3 public class Bid { private Item biddeditem ; 7 9 public Item getbiddeditem () { 10 return biddeditem ; 11 } }

61 Konfiguracja i poprawne stosowanie Związek dwukierunkowy Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. OneToMany ; 2 3 public class Item { private List <Bid > bids ; 7 ( mappedby = " biddeditem ") 9 public List <Bid > getbids () { 10 return bids ; 11 } }

62 Konfiguracja i poprawne stosowanie Związek n-m Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. JoinColumn ; 2 import javax. persistence. JoinTable ; 3 import javax. persistence. ManyToMany ; 4 5 public class Item { private List < Category > itemcategories ; 9 ( name = " CATEGORIES_ITEMS ", 12 joincolumns ( name = " ITEM_ID "), 13 inversejoincolumns ( name = " CATEGORY_NAME ") 14 ) 15 public List < Category > getitemcategories () { 16 return itemcategories ; 17 } }

63 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Związek generalizacji - klasa rozszerzana Klasa generalizująca: 1 import javax. persistence. Id; 2 import javax. persistence. Inheritance ; 3 import javax. persistence. InheritanceType ; 4 ( strategy = InheritanceType. JOINED ) 6 public class Person { private String name ; public String getname () { 13 return name ; 14 } }

64 Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Związek generalizacji - klasa rozszerzona Klasa generalizowana: 1 import javax. persistence. Inheritance ; 2 import javax. persistence. InheritanceType ; 3 ( strategy = InheritanceType. JOINED ) 5 public class Employee extends Person { }

65 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

66 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

67 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

68 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

69 Konfiguracja i poprawne stosowanie Usprawnienia DDL Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka pozwala na bardzo precyzyjne określenie schematu bazy danych, co jest niezbędne dla zapewnienia spójności danych i optymalizacji wydajności: Natywne typy bazy danych Nazywanie elementów schematu Tworzenie złożonych ograniczeń Zakładanie indeksów

70 Konfiguracja i poprawne stosowanie Natywne typy danych Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Column ; 2 3 public class User { private String username ; 7 ( name = " USER_NAME ", 9 columndefinition = " address (255) not null " 10 ) 11 public String getusername () { 12 return username ; 13 } }

71 Konfiguracja i poprawne stosowanie Złożone ograniczenie UNIQUE Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka 1 import javax. persistence. Table ; 2 ( 4 name = " USERS ", 5 uniqueconstraints = { ( 7 columnnames = {" FIRST_NAME ", " LAST_NAME "} 8 ) 9 } 10 ) 11 public class User { }

72 Konfiguracja i poprawne stosowanie Ograniczenie CHECK Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka hibernate. annotations. Check ( 2 constraints = " PRICE < MAX_PRICE " 3 ) 4 public class Item { ( name = " PRICE ") hibernate. annotations. Check ( constraints = " PRICE > 0") 9 private Integer price ; ( name = " MAX_PRICE ") 11 private Integer maxprice ; }

73 Konfiguracja i poprawne stosowanie Zakładanie indeksów Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka ( name =" ITEMS ") hibernate. annotations. Table ( 3 appliesto = " ITEMS ", 4 indexes hibernate. annotations. Index 5 ( 6 name = " IDX_NAME ", 7 columnnames = { " FIRST_NAME ", " LAST_NAME " } 8 ) 9 ) 10 public class User { }

74 Praktyka Wprowadzenie Konfiguracja i poprawne stosowanie Sposoby mapowania klas Mapowanie związków Usprawnienia DDL Praktyka Praktyczny przykład Mapowanie i utrwalanie w prostym modelu obiektowym reprezentującym aukcje.

75 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

76 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

77 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

78 Konfiguracja i poprawne stosowanie Czym jest HQL? Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL The Query Language HQL jest w pełni obiektowym językiem zapytań o składni podobnej do SQL a. W zapytaniach wykorzystuje się nazwy klas zamiast nazw tabel oraz nazwy atrybutów zamiast nazw column. JPA QL JPA QL jest ustandaryzowanym pozdzbiorem HQL.

79 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

80 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

81 Konfiguracja i poprawne stosowanie Klauzula SELECT... FROM Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Najprostrze zapytania w HQL u. */ 2 from Book 3 from Book book 4 from Book as book 1 /* Wygenerowany przez a SQL. */ 2 select b. BOOK_ID, b. TITLE, b. DESCRIPTION from BOOK b 1 /* Polimorfizm. */ 2 /* Zapytanie zwróci wszystkie obiekty */ 3 from java. lang. Object 4 /* Działa również dla interfejsów */ 5 from java. io. Serializable

82 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

83 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

84 Konfiguracja i poprawne stosowanie Klauzula WHERE Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Obiektowy zapis zapytań. */ 2 from Book b where b. title = 3 Java Persistence with 1 /* Wygenerowany przez a SQL. */ 2 select u. BOOK_ID, u. TITLE, u. DESCRIPTION 3 from BOOK u 4 where u. TITLE = Java Persistence with 1 /* Inne przykłady. */ 2 from Book b where b. title in ( Pro Wicket, 3 ) 3 from Book b where b. description is null 4 5 /* na zbiorach */ 6 from Category c where c. books is empty

85 Konfiguracja i poprawne stosowanie Tworzenie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie obiektu Query umożliwiającego wykonanie zapytania. 1 /* Zapytanie w HQL u. */ 2 Query q1 = session. createquery ( 3 " from Book b where b. title like % Wicket % "); 4 5 /* To samo w JPA QL. */ 6 Query q2 = entitymanager. createquery ( 7 " select b from Book b where b. title like % Wicket % ");

86 Konfiguracja i poprawne stosowanie Tworzenie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie obiektu Query umożliwiającego wykonanie zapytania. 1 /* Zapytanie w HQL u. */ 2 Query q1 = session. createquery ( 3 " from Book b where b. title like % Wicket % "); 4 5 /* To samo w JPA QL. */ 6 Query q2 = entitymanager. createquery ( 7 " select b from Book b where b. title like % Wicket % ");

87 Konfiguracja i poprawne stosowanie Stronnicowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Możliwy jest podział wyników zwracanych przez zapytanie na strony o określonej z góry ilości elementów. 1 /* Zapytanie w HQL u, które zwraca pierwszych 10 2 obiektów, począwszy od 40. */ 3 Query q1 = session. createquery ( 4 " from Book b order by b. id asc ") 5. setfirstresult (2) 6. setmaxresults (2);

88 Konfiguracja i poprawne stosowanie Stronnicowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Możliwy jest podział wyników zwracanych przez zapytanie na strony o określonej z góry ilości elementów. 1 /* Zapytanie w HQL u, które zwraca pierwszych 10 2 obiektów, począwszy od 40. */ 3 Query q1 = session. createquery ( 4 " from Book b order by b. id asc ") 5. setfirstresult (2) 6. setmaxresults (2);

89 Konfiguracja i poprawne stosowanie Parametry w zapytaniach Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Kod wrażliwy na SQL Injection */ 2 String qstring = 3 " from Book b "+ 4 " where b. title like " + search +" "; 5 List result = session. createquery ( qstring ). list (); 1 /* Zapytanie HQL korzystające z parametrów. */ 2 String qstring = " from Book b" 3 + " where b. title like : tit " 4 + " and b. category. name like : cat "; 5 6 Query q = session. createquery ( qstring ) 7. setstring (" tit ", "% %") 8. setdate (" cat ", "C%");

90 Konfiguracja i poprawne stosowanie Parametry w zapytaniach Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL 1 /* Kod wrażliwy na SQL Injection */ 2 String qstring = 3 " from Book b "+ 4 " where b. title like " + search +" "; 5 List result = session. createquery ( qstring ). list (); 1 /* Zapytanie HQL korzystające z parametrów. */ 2 String qstring = " from Book b" 3 + " where b. title like : tit " 4 + " and b. category. name like : cat "; 5 6 Query q = session. createquery ( qstring ) 7. setstring (" tit ", "% %") 8. setdate (" cat ", "C%");

91 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

92 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

93 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

94 Konfiguracja i poprawne stosowanie Wykonywanie zapytań Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL list() - zwraca wynik w postaci java.util.list uniqueresult() - zwraca pojedynczy wynik iterate() - zapytanie zwraca tylko klucze główne, dopiero gdy wynik jest przeglądany przy pomocy iteratora pobierane są całe obiekty scroll() - udostępnia metody takie jak: first(), last(), next(), scroll(numerwiersza), itp.

95 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

96 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

97 Konfiguracja i poprawne stosowanie nazwane Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL nazwane umożliwiają zgrupowanie definicji wszystkich zapytań w jednym miejscu. umożliwia definiowanie zapytań nazwanych w plikach XML z mapowaniem lub przy pomocy annotacji w klasie obiektu. 1 /* Tworzenie obiektu Query z zapytania nazwanego */ 2 Query q = session. getnamedquery (" findallbooksbycategory ") 3. setstring (" cat ", "C%");

98 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego w pliku XML 1 <! -- HQL lub JPA QL --> 2 <query name =" findallbooksbycategory " ><![ CDATA [ 3 from Book b where b. category. name like :cat 4 ]] ></ query > 1 <! -- natywny SQL --> 2 <sql - query name =" findallbooksbycategory " > 3 < return alias ="b" class =" Book "/><![ CDATA [ 4 select { b.*} from BOOKS b 5 join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID 6 where c. name like :cat 7 ]] > 8 </sql - query >

99 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego w pliku XML 1 <! -- HQL lub JPA QL --> 2 <query name =" findallbooksbycategory " ><![ CDATA [ 3 from Book b where b. category. name like :cat 4 ]] ></ query > 1 <! -- natywny SQL --> 2 <sql - query name =" findallbooksbycategory " > 3 < return alias ="b" class =" Book "/><![ CDATA [ 4 select { b.*} from BOOKS b 5 join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID 6 where c. name like :cat 7 ]] > 8 </sql - query >

100 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Definicja zapytania nazwanego przy pomocy Annotacji 1 package hello ; 2 3 import...; 4 ({ ( 7 name = " findallbooksbycategory ", 8 query = 9 " select b from Book b where b. category. name like : cat " 10 ), }) ( name = " BOOKS ") 15 public class book {... }

101 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

102 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

103 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

104 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Wstęp do Query by Criteria oraz Query by Example API specyficzne dla a. Polecane do konstrukcji skomplikowanych zapytań. Umożliwiają budowę zapytań poprzez tworzenie i łączenie obiektów. HQL łatwiej dostosować do specyfiki zapytania.

105 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

106 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

107 Konfiguracja i poprawne stosowanie Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Tworzenie zapytań w Query by Criteria 1 /* Najprostrze zapytanie wybierające wszystkie 2 obiekty z danej klasy. */ 3 session. createcriteria ( Category. class ); 1 /* Query by Criteria także obsługuje 2 polimorficzne zapytania. */ 3 session. createcriteria ( java. lang. Object. class ) 1 /* Nie jest wymagana otwarta sesja do stworzenia 2 zapytania. */ 3 DetachedCriteria crit = DetachedCriteria 4. forclass ( Book. class ) 5. addorder ( Order. asc (" title " )); 6 7 List items = crit. getexecutablecriteria ( session ). list ();

108 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

109 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

110 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

111 Konfiguracja i poprawne stosowanie Definicja ograniczeń Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL Ograniczenia definiujemy przy pomocy obiektów Criterion. Klasa Restrictions dostarcza wiele wbudowanych typów obiektów Criterion. 1 /* Wybór książki o podanym tytule. */ 2 Criterion titleeq = 3 Restrictions.eq(" title ", " Wicket in Action "); 4 Criteria criteria = session. createcriteria ( Book. class ); 5 criteria. add ( titleeq ); 6 List items = criteria. list (); 1 /* Inny przykład. */ 2 String [] titles = {" Pro Wicket ", " 3"}; 3 session. createcriteria ( Book. class ) 4. add ( Restrictions.in(" title ", titles ));

112 Konfiguracja i poprawne stosowanie Query by Example Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL QbE jest częścią Criteria API. Dostarczamy instancję obiektu, która ma uzupełnione pewne atrybuty. Zapytanie zwróci wszystkie takie obiekty, które mają analogicznie uzupełnione dane. 1 /* Przykład. */ 2 public List findbooksbyexample ( Book b) { 3 Example ebook = 4 Example 5. create (b) 6. ignorecase () 7. excludeproperty (" description "); 8 9 return getsession (). createcriteria ( Book. class ) 10. add ( ebook ). list (); 11 }

113 Konfiguracja i poprawne stosowanie Query by Example Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL QbE jest częścią Criteria API. Dostarczamy instancję obiektu, która ma uzupełnione pewne atrybuty. Zapytanie zwróci wszystkie takie obiekty, które mają analogicznie uzupełnione dane. 1 /* Przykład. */ 2 public List findbooksbyexample ( Book b) { 3 Example ebook = 4 Example 5. create (b) 6. ignorecase () 7. excludeproperty (" description "); 8 9 return getsession (). createcriteria ( Book. class ) 10. add ( ebook ). list (); 11 }

114 Konfiguracja i poprawne stosowanie Natywne zapytania SQL Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL umożliwia nam korzystanie z natywnego SQL a. 1 /* Wszystkie itemy sprzedawane przez danego użytkownika. */ 2 List items = session. createsqlquery ( 3 " select {b.*} from BOOKS b" 4 +" join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID " 5 +" where c. NAME = : cat ") 6. addentity ("b", Book. class ) 7. setstring (" cat ", " Computer books ") 8. list ();

115 Konfiguracja i poprawne stosowanie Natywne zapytania SQL Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL umożliwia nam korzystanie z natywnego SQL a. 1 /* Wszystkie itemy sprzedawane przez danego użytkownika. */ 2 List items = session. createsqlquery ( 3 " select {b.*} from BOOKS b" 4 +" join CATEGORIES c on c. CATEGORY_ID = b. CATEGORY_ID " 5 +" where c. NAME = : cat ") 6. addentity ("b", Book. class ) 7. setstring (" cat ", " Computer books ") 8. list ();

116 Konfiguracja i poprawne stosowanie Typy użytkownika Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL jest w stanie zgadnąć typ obiektu zwracanego, gdy jest to typ wbudowany, w przeciwnym przypadku w definicji zapytania uwzględniamy klasę obiektu, który ma zostać zwrócony. 1 Properties param = new Properties (); 2 param. put (" enumclassname ", " hello. Rating "); 3 4 session. createsqlquery ( 5 " select b. RATING as rating " 6 + " from BOOKS b" 7 + " where b. TITLE = : tit ") 8. addscalar (" rating ", 9. custom ( StringEnumUserType. class, param )) 10. setparameter (" tit ", " Wicket in Action ") 11. list ();

117 Konfiguracja i poprawne stosowanie Typy użytkownika Wstęp do HQL a Standardowe kwerendy w języku HQL nazwane Query by Criteria Query by Example Natywne zapytania SQL jest w stanie zgadnąć typ obiektu zwracanego, gdy jest to typ wbudowany, w przeciwnym przypadku w definicji zapytania uwzględniamy klasę obiektu, który ma zostać zwrócony. 1 Properties param = new Properties (); 2 param. put (" enumclassname ", " hello. Rating "); 3 4 session. createsqlquery ( 5 " select b. RATING as rating " 6 + " from BOOKS b" 7 + " where b. TITLE = : tit ") 8. addscalar (" rating ", 9. custom ( StringEnumUserType. class, param )) 10. setparameter (" tit ", " Wicket in Action ") 11. list ();

118 Konfiguracja i poprawne stosowanie Bibliografia jest jednym z najlepszych narzędzi wspierających ORM. Posiada bardzo rozbudowaną funkcjonalność, dzięki której możemy rozwiązać niemal wszystkie problemy związane z problemem persystencji danych w naszej aplikacji. Do największych zalet możemy zaliczyć: Proste mapowanie nawet zaawansowanych modeli obiektowych Uniezależnienie się od systemu zarządzania bazą danych Rozbudowany mechanizm tworzenia zapytań Możliwość automatycznej generacji schematu bazy danych Mechanizmy zwiększające efektywność - m.in. rozbudowany cache jest implementacją standardu JPA

119 Konfiguracja i poprawne stosowanie Bibliografia jest jednym z najlepszych narzędzi wspierających ORM. Posiada bardzo rozbudowaną funkcjonalność, dzięki której możemy rozwiązać niemal wszystkie problemy związane z problemem persystencji danych w naszej aplikacji. Do największych zalet możemy zaliczyć: Proste mapowanie nawet zaawansowanych modeli obiektowych Uniezależnienie się od systemu zarządzania bazą danych Rozbudowany mechanizm tworzenia zapytań Możliwość automatycznej generacji schematu bazy danych Mechanizmy zwiększające efektywność - m.in. rozbudowany cache jest implementacją standardu JPA

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

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009 Agenda Hibernate Adrian Gawor, Adam Klekotka, Piotr Kubisz Technologie Biznesu Elektronicznego 12 maja 2009 Adrian Gawor, Adam Klekotka, Piotr Kubisz Hibernate 1 / 42 Agenda 1 2 3 4 5 6 7 Adrian Gawor,

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe HIBERNATE CD. Rodzaje relacji Jeden do wielu Pojedyncza Osoba ma wiele Wpisów Wiele do jednego Wiele Wpisów należy do jednej Osoby Jeden do jednego Pojedyncza

Bardziej szczegółowo

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne

Bardziej szczegółowo

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

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów. Hibernate Każda poważniejsza aplikacja wymaga przechowywania danych w jakiejś bazie danych. Można realizować to na wiele sposobów. Można obsługę bazy danych pisać samodzielnie, do zera, albo skorzystać

Bardziej szczegółowo

Gdzie jest moja tabela?

Gdzie jest moja tabela? Gdzie jest moja tabela? Czyli jak sobie radzić w Javie i SQL gdy zmienia się schemat bazy danych. Tomasz Skutnik 21 Listopada 2011 r UWIELBIAM piratów programować. Dziś koduję sklep internetowy. Jak rozmawiać

Bardziej szczegółowo

Projektowanie aplikacji z bazami danych

Projektowanie aplikacji z bazami danych Systemy mapowania relacyjno-obiektowego Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do trwałości Niedopasowanie paradygmatów Architektura warstwowa Czym jest ORM? Problemy i pytania

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010 4Developers, 26 marca 2010 Zakres wykładu O czym zamierzam opowiedzieć: Przyspieszenie tworzenia aplikacji Ułatwienie utrzymania aplikacji Budowanie kontraktów pomiędzy developerami a innymi uczestnikami

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 28.04.2014 WYKŁAD 9 Trwałość w Java cz. 2 wykład

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Hibernate mapowanie baz danych

Hibernate mapowanie baz danych Hibernate mapowanie baz danych Jest to technologia pozwalająca mapować dane obiektowe na odpowiadające im struktury w bazach danych. ORM - Object-to-Relational Mapping. Jest odpowiedzią na znikomą ilość

Bardziej szczegółowo

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

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek Enterprise JavaBean EJB 2.x oraz zmiany w standardzie dla EJB 3.0 Michał Stanek Plan prezentacji Czym jest EJB Architektura aplikacji J2EE oraz kontener EJB Typy komponentów JavaBean EJB 1.0, EJB 2.x Wady

Bardziej szczegółowo

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl Konwersja i walidacja W wyniku działania konwersji i walidacji surowe dane, przesyłane w postaci

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood

Hibernate. Od Nowicjusza do Profesjonalisty. Dave Minter Jeff Linwood 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

Bardziej szczegółowo

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

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania Autor Zofia Kruczkiewicz Wzorce oprogramowania 6 1. Różne

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

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

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Architektura Trwałość przezroczysta Konfiguracja, konfiguracja mapowania Dziedziczenie klas Kolekcje Asocjacje Cykl życia obiektów Trwałość przechodnia

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Java Persistence. Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 5.5 wraz z serwerem Sun Java System Application

Bardziej szczegółowo

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 5 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do XPO Podstawowe obiekty Utrwalanie obiektów Transakcje i współbieżność Wzorzec unit of work Odwzorowanie dziedziczenia Asocjacje

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności Encje w Drupalu Tworzenie własnych encji i ich wpływ na poprawę wydajności DrupalCamp Wrocław 2015 Grzegorz Bartman https://twitter.com/grzegorzbartman O mnie Grzegorz Bartman http://twitter.com/grzegorzbartman

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Enterprise JavaBeans 3.0

Enterprise JavaBeans 3.0 Enterprise JavaBeans 3.0 Jacek Laskowski http://www.jaceklaskowski.pl Politechnika Poznańska Poznań, 07.12.2007, wersja 1 O mnie... Entuzjasta technologii Java EE 5 Założyciel i lider Warszawa JUG Członek

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012: Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2014 Plan wykładu 1 Projekt 2 Modele danych 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 38 Zasady Projekt Składowe projektu przynajmniej

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. Zanim ktokolwiek postanowi użyd tego w swoim projekcie, należy zaznaczyd

Bardziej szczegółowo

Agenda. Grzegorz Wilaszek, Wojciech Krzystek

Agenda. Grzegorz Wilaszek, Wojciech Krzystek Agenda PostgreSQL Standard J2EE: JPA co to jest przegląd możliwości mapowanie hierarchii metody definiowania kwerend Natywny SQL zapytania nazwane JPQL Criteria API Hibernate Spring Data Przykład Grzegorz

Bardziej szczegółowo

MAPOWANIE OBIEKTOWO-RELACYJNE (ORM) CZY TYLKO DOBRA IDEA?

MAPOWANIE OBIEKTOWO-RELACYJNE (ORM) CZY TYLKO DOBRA IDEA? ZESZYTY NAUKOWE 99-112 Zbigniew ROSIEK 1 MAPOWANIE OBIEKTOWO-RELACYJNE (ORM) CZY TYLKO DOBRA IDEA? Streszczenie Mapowanie obiektowo-relacyjne (ORM) jest nowoczesnym podejściem do zagadnienia współpracy

Bardziej szczegółowo

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych. *Grafomania z Neo4j Praktyczne wprowadzenie do grafowej bazy danych. Jak zamodelować relacyjną bazę danych reprezentującą następujący fragment rzeczywistości: Serwis WWW opisuje pracowników różnych firm

Bardziej szczegółowo

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Maciej Szymczak, maj 2001 soft@home.pl Ostatnia aktualizacja: 2012-03-31 1 Plan widoczny podczas całego wykładu Numer slajdu

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

MVC w praktyce tworzymy system artykułów. cz. 1

MVC w praktyce tworzymy system artykułów. cz. 1 MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Dostęp do baz danych w aplikacjach Java EE

Dostęp do baz danych w aplikacjach Java EE Dostęp do baz danych w aplikacjach Java EE Wykład prowadzi: Marek Wojciechowski JDBC SQLJ Plan wykładu Biblioteka znaczników JSTL SQL EJB (do wersji 2.1) Odwzorowanie obiektowo-relacyjne (O/RM) Java Persistence

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Co narzuca MVC? Architekturę aplikacji wykonaną w konwencji Model Widok - Kontroler Model reprezentacja danych i dostępu do nich Widok elementy

Bardziej szczegółowo

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Java EE: JSF + EJB + JPA

Java EE: JSF + EJB + JPA Java EE: JSF + EJB + JPA Celem ćwiczenia jest utworzenie prostej aplikacji bazodanowej umożliwiającej przeglądanie i dodawanie zleceń serwisowych. Ćwiczenie pokazuje współpracę technologii JSF (podstawowej

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Bazy danych Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Wszechnica Poranna Trzy tematy: 1. Bazy danych - jak je ugryźć? 2. Język SQL podstawy zapytań. 3. Mechanizmy wewnętrzne baz danych czyli co

Bardziej szczegółowo

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

SPRING FRAMEWORK. dr inż. Jakub Chłapioski SPRING FRAMEWORK Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź dr inż. Jakub Chłapioski 3. Spring Data Access Zarządzanie transakcjami

Bardziej szczegółowo

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Tomasz Dobek. t.dobek@students.mimuw.edu.pl

Tomasz Dobek. t.dobek@students.mimuw.edu.pl Spring Framework Tomasz Dobek t.dobek@students.mimuw.edu.pl Plan prezentacji Spring z lotu ptaka Kontener Spring IoC Spring AOP Menedżer transakcji w Springu Spring DAO Testy integracyjne Podsumowanie

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Konfigurowanie edytora programu za pomocą Tools/Options/Editor Konfigurowanie edytora programu za pomocą

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

NARZĘDZIA WIZUALIZACJI

NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej NARZĘDZIA WIZUALIZACJI Andrzej Łachwa andrzej.lachwa@uj.edu.pl 3 4/8 Zobacz film: http://www.ted.com/talks/david_mccandless_the_beauty_of_dat a_visualization.html

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Relacyjne bazy danych a XML

Relacyjne bazy danych a XML Relacyjne bazy danych a XML Anna Pankowska aniap@amu.edu.pl Internet, SQLiXMLwbiznesie Internet nieoceniony sposób komunikacji z klientami, pracownikami i partnerami handlowymi przyspiesza transakcje finansowe

Bardziej szczegółowo

ODWZOROWANIE OBIEKTOWO-RELACYJNE

ODWZOROWANIE OBIEKTOWO-RELACYJNE PODSTAWY BAZ DANYCH Mateusz Wojtaszek Agnieszka Walczak Kamil Lisiecki ODWZOROWANIE OBIEKTOWO-RELACYJNE Co to jest ORM? ORM to skrótowe oznaczenie dla "mapowanie obiektowo-relacyjne" (od angielskiego Object-Relational

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Wstęp do problematyki baz danych Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. I Jesień 2014 1 / 17 Plan wykładu 1 Bazy danych 1 Motywacja

Bardziej szczegółowo

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres Artur Kozubski Software Development GigaCon Warszawa 2008 Plan Historia projektu Firebird Architektura serwera Administracja

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 1 Enterprise JavaBeans 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 2 Enterprise JavaBeans Enterprise JavaBeans (EJB) to specyfikacja

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy to przede wszystkim szybkość przetwarzania danych, ilość dostępnych

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1 EJB 3.0 & JBoss Seam 25 kwietnia 2007 Jacek Gerbszt 1 Wyzwania współczesnych aplikacji? Rozproszenie, zdalne wywołania Przetwarzanie transakcyjne Bezpieczeństwo Skalowalność Klastrowanie Łatwe wytwarzanie

Bardziej szczegółowo

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych (podrozdziały 1, 2, 3) Tworzenie warstwy prezentacji pierwszy etap (podrozdziały

Bardziej szczegółowo

ZAŁĄCZNIK NR 5 - GRUPA PRODUKTÓW 5: OPROGRAMOWANIE BAZODANOWE

ZAŁĄCZNIK NR 5 - GRUPA PRODUKTÓW 5: OPROGRAMOWANIE BAZODANOWE ZAŁĄCZNIK NR 5 - GRUPA PRODUKTÓW 5: OPROGRAMOWANIE BAZODANOWE Opis przedmiotu zamówienia Licencja na Microsoft SQL Server 2008 R2 Standard Edition Gov. MOLP 1 CPU (2 szt.) lub Licencja na Microsoft SQL

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo