Programowanie w języku Java WYKŁAD

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

Download "Programowanie w języku Java WYKŁAD"

Transkrypt

1 Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational pzabawa@pk.edu.pl www:

2 WYKŁAD 9 Trwałość w Java cz. 2 wykład o Hibernate został w znacznej części oparty o materiały nieznanego autora

3 Trwałość w Java Czym kierować się przy wyborze podejścia do trwałości? dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

4 Trwałość w Java Argumenty za ORM Eliminuje ręczne mapowanie w Java z SQL ResultSet do klas Java. Redukuje ilość pracy wymaganej do obsługi zmiany modelu danych w relacyjnej bazie danych lub po stronie obiektowej w apliakcji. Maksymalizuje wykorzystanie dużej biblioteki trwałości pozwalając na uniknięcie rozwijania rozwiązań problemów już rozwiązanych przez innych. Eliminuje niskopoziomowy kod JDBC i SQL. Maksymalizuje możliwość wykorzystania programowania obiektowego i modelu obiektowego. Wprowadza niezależność pomiędzy bazą danych i jej strukturą (?) Provides database and schema independence. Większość produktów ORM jest darmowa i open source owa. Wiele korporacji dostarcza wsparcia i usług dla produktów ORM. Dostarcza wysoko wydajnościowych cech, jak cache owanie oraz wyrafinowana optymalizacja operacji na bazie danych. dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

5 Trwałość w Java Argumenty za JPA Jest stadardem i częścią EJB3 oraz Java EE. Wiele darmowych i open source owych produktów ze wsparciem biznesowym. Przenośność pomiędzy serwerami aplikacyjnymi i produktami trwałościowymi (uniknięcie zależności od dostawcy). Użyteczna i funkcjonalna specyfikacja. Wparcie zarówno dla Java EE jak i dla Java SE. dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

6 Trwałość Uwzględnić mapowania: ORM (JPA, Hibernate) GRM XML projekt Spring Data Kwestia obiektowych baz danych.

7 Trwałość Uwzględnić architektoniczne wzorce korporacyjne: DAO (Data Access Object) DTO (Data Transfer Object) ActiveRecord Broker SDO = JDO + DTO (Service Data Object= Java Data Object+ Data Transfer Object)

8 Trwałość w Java Java 8 JDBC a Java 8 Nawiązać do kwestii obsługi wyjątków w Java 8 w kontekście JDBC html dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

9 Trwałość w Java Natura problemów z dopasowaniem relacyjnych baz danych do paradygmatu obiektowego: Celem optymalizacji relacyjnych baz danych (normalizacja) jest oszczędność zasobów poprzez unikanie redundancji Celem optymalizacji kodu obiektowego jest czytelność i łatwość wprowadzania zmian Dlatego zestawienie tych dwóch światów jest trudne jest konflikt interesów. dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

10 Trwałość w Java Charakter niedopasowania: Granulacja inna ilość klas niż tabel Dziedziczenie nie wspierane bezpośrednio w RDB Asocjacje jednokierunkowe w Java, klucze obce w RDB Krotność asocjacji nie jest specyfikowana wprost w Java, wspierana przez klucze obce w RDB Nawigowanie po danych przechodzenie po obiektach w Java, łączenie tabel (join) w RDB dr inż..piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki

11 JPA 2.1

12 JPA 2.1 JPA stanowi specyfikację mapowania obiektowo-relacyjnego i trwałości dedykowaną dla języka programowania Java. JPA 2.1 jest standardem opracowanym przez twórców języka Java w ramach inicjatywy standaryzacyjnej Java Community Process o identyfikatorze JSR 338. Wersja ta jest najnowszą, zatwierdzoną w 2013 roku, wersją standardu JPA obecnie wspieraną jedynie przez następujące produkty: Hibernate EclipseLink Data Nucleus JPA wraz z produktami stanowiącymi implementację tego standardu są łącznie nazywane ORM (Object-Relational Mapping).

13 JPA 2.1 ORM jest obecnie najbardziej dojrzałą koncepcją wiązania danych z relacyjnej bazy danych z obiektami w paradygmacie klasowoobiektowym. Dlatego podejście to oraz jego implementacja zostały przedstawione w ramach wykładu z Java SE. Zwykle ORM prezentuje się w ramach wykładów dopiero w kontekście Java EE, co wymaga uprzedniego zaznajomienia się z rozbudowanym systemem pojęć typowym dla Java EE. Jest to jednak całkowicie zbyteczne i stanowi zbędny balast dla osób pragnących poznać jedynie kwestię ORM. W ramach ORM wykorzystuje się adnotacje w celu powiązania klas z tabelami.

14 JPA 2.1 Potencjalne korzyści ze stosowania JPA: Mniej kodu Spójny model interakcji z bazą danych Wydajność Niezależność od wersji i od dostawcy serwera bazy danych (pod warunkiem nie korzystania ze specyfiki) Uniknięcie znajomości SQL

15 JPA wady Złożoność Trudniejsze do nauki Trudniejsze do debugowania Częstsza degradacja wydajnościowa Ograniczona elastyczność Trudniejsze uwzględnianie specyfiki serwerów bazodanowych

16 JPA public class sequencename="user_pk", generator="usersequence") private Long nullable=false) private String private String fullname; }

17 JPA 2.1 Podstawowy interfejs przy pracy z JPA, to EntityManager: EntityManager entitymanager = entitymanagerfactory.createentitymanager(); Example example = entitymanager.find(example.class, 1L); entitymanager.close();

18 JPA 2.1 Adnotacje

19 JPA public class Order CUSTOMER_ID, referencedcolumnname= ID ) private public class Customer customer ) private Set<Order> orders; }

20 JPA 2.1 Gdy JPA ładuje (fetch) encję z bazy musi wiedzieć czy załadować również encje powiązane z nią relacjami. Eager: pobranie powiązanych encji od razu, domyślne dla Lazy: pobranie powiązanych encji w chwili sięgnięcia do nich w kodzie źródłowy, domyślne dla i customer, fetch=fetchtype.eager) private Set<Order> orders;

21 JPA 2.1 Uprzednie zamknięcie obiektu EtityManager przed odwołaniem do powiązanych encji prowadzi do błędu Lazy Initialization Error.

22 Hibernate

23 Hibernate Hibernate stanowi jedną z kilku implementacji standardu JPA 2.1. Jako produkt tworzony i udostępniany jest przez organizację JBoss, która należy do firmy RedHat:

24 Hibernate Ze względu na fakt przedstawienia w ramach zajęć laboratoryjnych narzędzia Maven podano poniżej sposób wykorzystania Hibernate z poziomu Maven a. Repozytoria Mavena proszę sprawdzić sposób nawigowania po nich! JBoss Nexus (producenta, więc pierwsze): Maven Central (z niewielkim, kilkudniowym opóźnieniem): SourceForge:

25 Hibernate Zależność Hibernate jako produktu dla Mavena (od aktualnej wersji): <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>4.3.5.final</version> </dependency>

26 Hibernate Zależność implementacji JPA jako części Hibernate dla Mavena (od aktualnej wersji): <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-entitymanager</artifactid> <version>4.3.5.final</version> </dependency>

27 Hibernate W czasie używania nowych technologii należy mieć na względzie następujące okoliczności powodujące, że nie należy używać w projektach nie służących jedynie samokształceniu wersji najnowszych oprogramowania: Brak wsparcia przez IDE (przykładem jest brak należytego wsparcia w nowej technologii Java 8 w dostępnych obecnie środowiskach Eclipse) Brak dokumentacji dla produktów open-source (czasmi i niektórych) warto korzystać z dokumentacji do tego produktu, którego się używa w projekcie Zbyt nowe IDE brak wsparcia dla wielu innych technologii Brak wsparcia ze strony społeczności zbyt mało wykrytych i rozwiązanych problemów, których wielość jest typowa dla nowych technologii

28 Hibernate Hiernate jest jednym z najlepiej ocenianych frameworków do realizacji warstwy dostępu do danych (ang. persistance layer = warstwa trwałości). Zapewnia on przede wszystkim odwzorowanie/translację (ang. O/R mapping) danych pomiędzy relacyjną bazą danych a światem obiektowym. Opiera się na wykorzystaniu opisu struktury danych za pomocą języka XML, dzięki czemu można "rzutować" obiekty, stosowane w obiektowych językach programowania, takich jak Java bezpośrednio na istniejące tabele bazy danych. Zawiera też mechanizm pozwalający na inżynierię w przód (ang. forward engineering) struktury bazy danych (tabel i relacji) na podstawie klas oraz inżynierię wsteczną (ang. reverse engineering) polegającą na generowaniu kodu źródłowego klas z bazy danych o określonej strukturze.

29 Hibernate Dodatkowo Hibernate zwiększa wydajność operacji na bazie danych dzięki buforowaniu i minimalizacji ilości przesyłanych zapytań (por. z trybem pracy wsadowej JDBC). Jest to projekt rozwijany jako open source. Według dokumentacji celem Hibernate jest zwolnienie projektanta aplikacji z konieczności ręcznego kodowania 95% zadań związanych z zapewnieniem trwałości danych. Jedną z istotnych zalet tego rozwiązania jest zwolnienie programisty z konieczności przepisywania poszczególnych pól obiektów na pola rekordu i na odwrót.

30 Hibernate Struktura biblioteki: Hibernate Core - podstawowa część biblioteki, wykonująca większość pracy, Hibernate Annotations - element pozwalający zastąpić większą część konfiguracji Hibernate, budowanej do tej pory w XML, poprzez adnotacje w kodzie napisane z użyciem Javy 5. Hibernate Tools które zawierają rozmaite wtyczki (plug-ins) dla Anta oraz darmowego środowiska Eclipse IDE. Wtyczka Hibernate Tools dla Eclipse oferuje: Edytor odwzorowań (uzupełnianie i kolorowanie kodu) Konsolę Hibernate (przegląd konfiguracji, klas, itp. oraz interaktywne zapytania HQL Kreatory i generatory kodu (w tym kompletny reverse-engineering istniejącego schematu bazy danych)

31 Architektura ogólna Hibernate: Hibernate

32 Hibernate Architektura szczegółowa Hibernate została przedstawiona na następnym slajdzie

33 Hibernate

34 Hibernate Plik konfiguracyjny Hibernate może mieć jedną z dwóch postaci: Plik properties o nazwie hibernate.properties (mniej wygodne) Plik XML o nazwie hibernate.cfg.xml W czasie obsługi trwałości za pomocą mapowania obiektoworelacyjnego Hibernate wykorzystuje te informacje.

35 Hibernate interfejsy Interfejsy podstawowe Interfejs Session główny interfejs wykorzystywany w każdej aplikacji. Jest to lekki obiekt, często tworzony i zwalniany. Stanowi formę pośrednią pomiędzy połączeniem i transakcją. Nazywa się go czasem zarządcą trwałości. Interfejs SessionFactory po jednej instacji obiektu dla każdej bazy danych. Służy do tworzenia obiektów klasy Session. Interfejs Configuration służy do konfiguracji i uruchamiania Hibernate. Interfejs Transaction pozwala na wykorzystywanie mechanizmu transakcji i jego użycie jest opcjonalne. Interfejsy Query i Criteria służą do wysyłania zapytań i sterowania procesem ich wykonania. Można wykorzystać język HQL (Hibernate Query Language) lub natywny dla bazy danych SQL.

36 Hibernate interfejsy Interfejsy wywołań zwrotnych (ang. callback) Opcjonalne interfejsy umożliwiające aplikacji otrzymywanie powiadomień o zmianie stanu obiektu. Przykładem zastosowań są operacje audytowe (zapisywanie w bazie danych informacji o aktywnościach systemu softwerowego). Interfejsy Lifecycle i Validator rekacja obiektó trwałych na operacje CRUD Interfejs Interceptor oparty o koncepcję odwróconego sterowania (inversion of control) interfejs pozwalający uniknąć w obsłudze wywołań zwrotnych konieczności implementowania interfejsów Hibernate po stronie aplikacji

37 Hibernate stany obiektów Z perspektywy Hibernate można wyróżnić następujące trzy stany: Transient (ulotny) są to obiekty klas aplikacji nie odwzorowywanych w bazę danych, czyli takie, które nie są trwałe Persistent (trwały) są to trwałe obiekty klas encyjnych. Obiekt staje się trwały po wywołaniu na nim operacji save() z interfejsu Session następuje wtedy powiązanie go z określoną sesją. Egzemplarz obiektu trwałego może też powstać na podstawie informacji z bazy danych uzyskanych w wyniku wykonania zapytania, wyszukania identyfikatora lub przejścia do niego przez graf obiektów z innego obiektu.obiekt trwały może stać się ulotnym po wykonaniu na nim operacji delete() z interfejsu Session wtedy wiersz reprezentujący go zostaje usunięty z tabeli a obiekt odłączony od sesji. Detached (odłączony) obiekt przechodzi w ten stan po zamknięciu jego sesji za pomocą operacji close() obiektu Session. Możliwość ponownego podłączenia do sesji obiektó uzyskanych uprzednio z innej sesji w znaczącym stopniu wpływa na sposób projektowania aplikacji wielowarstwowych. Możliwość zwrócenia obiektów z jednej transakcji do warstwy wyższej (np. warstwy prezentacji) i ponowne użycie ich w innej transakcji stanowi jeden z głównych powodów popularności Hibernate. Wszystkie obiekty pobrane w trakcie trwania transakcji są niejawnie odłączane w momencie zamykania sesji lub w momencie ich serializacji (na przykład w celu przesłania do innego komputera).

38 Hibernate - scenariusze Przykładowy scenariusz uczynienia obiektu trwałym (zapis): SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session s = sf.opensession(); Transaction tx = s.begintransaction(); Osoba o= new Osoba(); o.setimie("zbigniew"); o.setnazwisko("boniek"); s.save(o); tx.commit(); // możliwe jest wycofanie transakcji: tx.rollback()) s.close();

39 Hibernate - scenariusze Przykładowy scenariusz pobrania obiektu z bazy (odczyt): //Wyjątek gdy błędny klucz: Osoba o = (Osoba) s.load(osoba.class, new Long(20)); System.out.println(o.getImie()); albo: // Zwraca null gdy błędny klucz Osoba o = (Osoba) s.get(osoba.class, new Long(20)); System.out.println(o.getImie());

40 Hibernate - scenariusze Przykładowy scenariusz usunięcia obiektu z bazy (zapis): // obiekt stanie się ulotny,ale referencja może zostać: s.delete(o);

41 Hibernate - scenariusze Przykładowy scenariusz modyfikacji obiektu trwałego (zapis): o.setnazwisko("smolarek"); // jeśli zmiany mają natychmiast zostać zapisane w bazie: s.flush();

42 Hibernate Reguły POJO (najdogodniejsze) dla Hibernate są następujące: Metody set/get (accessor/mutator)(metody dostępowe) dla trwałych atrybutów klasy pól w tabeli, dzięki którym mamy dostęp do prywatnych pól klasy Bezargumentowy konstruktor (może być domyślny)-jest wymagany przez Hibernate do tego, aby klasa mogła być utrwalana w bazie. Identyfikator (opcjonalnie) Oprócz domyślnego konstruktora dla każdej klasy, możemy dostarczyć także konstruktor umożliwiający bezpośrednie przypisanie pól innych niż klucze podstawowe. Dzięki temu możemy stworzyć i wypełnić obiekt w jednej czynności zamiast kilku. Klasa nie może być zadeklarowana jako final Może być final, ale w pewnych przypadkach może to np. ograniczać możliwości strojenia wydajności Hibernate może wewnętrznie zarządzać identyfikatorami obiektu (ale jest to niezalecane)

43 Hibernate prosty przykład Klasa POJO bez adnotacji: public class Osoba { private Long id; private String imie; private String nazwisko; public Osoba() {} public void setid(long id) { this.id = id; }

44 Hibernate prosty przykład } public Long getld() { return id; } public void setimie(string imie) { this.imie = imie; } public String getimie() { return imie; } public void setnazwisko(string nazwisko) { this. nazwisko = nazwisko; } public String getnazwisko () { return nazwisko; }

45 Hibernate prosty przykład Klasa POJO = "Osoba") public class @Column(name = "Num_osob") private Long = "Imie") private String = "Nazwisko") private String nazwisko; }

46 Hibernate zapytania HQL Zapytania w języku HQL jest to język zorientowany obiektowo o składni podobnej do SQL odwołujący się do klas a nie do tabel. wykonanie zapytań poprzez list() - zwraca cały wynik zapytania do kolekcji w pamięci (instancje pozostają w stanie trwałym): List osoby= (List) session.createquery("from Osoba as osoba where osoba.imie= 'Zbigniew'").list(); for (int i=0; i<osoby.size(); i++) System.out.println(((Osoba)osoby.get(i)).getImie()); List osoby = (List)s.createQuery("select Osoba.id, Osoba.imie from Osoba as osoba where Osoba.nazwisko = 'Boniek'").list(); for (int i=0; i<osoby.size(); i++) { } Object [ ] tab = (Object [ ]) osoby.get(i); System.out.println(tab[0]+" "+tab[1]);

47 Hibernate zapytania wykonywanie zapytań poprzez iterate() - zwraca wynik w kilku zapytaniach SELECT: może być efektywniejsze od list(), gdy instancje już są w pamięci podręcznej, ale rozwiązanie to jest zazwyczaj wolniejsze. Iterator osoby = s.createquery("from Osoba as osoba where osoba.nazwisko = 'Boniek'").iterate(); while (osoby.hasnext()) { } Osoba o = (Osoba) osoby.next(); System.out.println(o.getImie());

48 Hibernate zapytania Pobieranie obiektów z bazy danych w przypadku zapytań join zawierających odniesienia do tabel połączonych następuje leniwe pobieranie (ang. lazy fetching) rekordów z bazy w czasie pierwszego odwołania do następuje natychmiastowe pobieranie (ang. Eager fetching) rekordów z bazy Oba powyższe zachowania są domyślne.

49 Hibernate zapytania SQL Zapytania w natywnym języku SQL dają możliwość wykorzystania specyficznych dla danego systemu konstrukcji składniowych np. CONNECT w Oracle.

50 Hibernate zapytania Criteria Zapytania poprzez obiekty klasy Criteria umożliwiają budowę zapytań poprzez obiektowe API

51 Hibernate zapytania Example Zapytania poprzez obiekty klasy Example umożliwiają wyszukiwanie danych w oparciu o przykadową instancję (mechanizm QBE QueryByExample)

52 Hibernate dobre praktyki Źródło: Tworzyć wiele małych klas i odwzorowywać je (ang. map) w <component> Dla klas trwałych deklarować własności (ang. properties ) identyfikatora Identyfikować naturalne klucze Umieszczać każde odwzorowanie klasy w jej własnym pliku Ładować odwzorowania jako zasoby Rozważać eksternalizowanie stringów zapytań Nie zarządzać własnymi połączeniami JDBC Rozważać używanie własnych typów Używać ręcznie zakodowanych odwołań do JDBC w wąskich gardłach aplikacji Rozumieć flushing obiektów klasy Session

53 Hibernate dobre praktyki Rozważyć używanie obiektów odłączonych w aplikacjach 3-warstwowych Rozważyć używanie długich kontekstów trwałości w aplikacjach 2- warstwowych Nie traktować wyjątków jako recoverable Preferować lazy fetching dla asocjacji W ramach MVC używać otwartych sesji albo disciplined assembly phase aby uniknąć problemów z unfetched data Rozważyć uniezależnienie logiki biznesowej od Hibernate Nie używać egzotycznych odwzorowań asocjacji Preferować asocjacje dwukierunkowe UWAGA: wielość dobrych praktyk wynika z braku określenia kryterium jakości nie wiemy co kto optymalizuje ani jak zmierzyć jakość zestawu praktyk!

54 Hibernate Przykład wykorzystania Hibernate w aplikacji Java SE p. Klęk. W tym przykładowy plik pom

55 Hibernate Uruchamianie aplikacji z Hibernate - możliwości: Uzyskanie połączenia z istniejącą bazą danych przy starcie lub w trakcie działania Utworzenie bazy danych przy starcie aplikacji kwestia zainicjowania jej danymi Możliwość wykorzystania języka DDL do utworzenia bazy danych

56 Hibernate Praca z Hibernate w środowisku IDE na przykładzie Eclipse a.

57 Hibernate Materiały dodatkowe O wydajności JPA

58 Koniec

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

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Java Persistence API - zagadnienia zaawansowane

Java Persistence API - zagadnienia zaawansowane Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro

Bardziej szczegółowo

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podejście obiektowe do relacyjnych baz danych Hibernate. Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady

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

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

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

Technologie dostępu do baz danych z aplikacji Javy:

Technologie dostępu do baz danych z aplikacji Javy: Technologie dostępu do baz danych z aplikacji Javy: JDBC (ang. Java DataBase Connectivity - łącze do baz danych w języku Java) - interfejs programowania opracowany w 1996 r. przez Sun Microsystems, umożliwiający

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

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

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

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

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA Bazy danych tworzenie aplikacji bazodanowych ORM / JPA ORM (Object Relationa Mapping)/ORB (Object Relational Broker) to nazwa mechanizmu tłumaczenia obiektowej postaci danych wykorzystywanej w aplikacjach

Bardziej szczegółowo

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

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest

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

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

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 6 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu CastleProject i wzorzec ActiveRecord Wybrane możliwości Castle ActiveRecord Inicjalizja i konfiguracja Tworzenie klasy encji, dziedziczenie

Bardziej szczegółowo

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

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JAVA PERSISTENCE API CZĘŚĆ 2 Waldemar Korłub ASPEKTY ZAAWANSOWANE Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JPA w aplikacji Java EE Połączeniem z bazą danych zarządza serwer aplikacji

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

Podstawy frameworka Spring

Podstawy frameworka Spring Podstawy frameworka Spring Adresaci szkolenia: Szkolenie przeznaczone jest dla programistów znających język Java, chcących poszerzyć swoje kompetencje w zakresie tworzenia aplikacji.koncepcja szkolenia

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

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

Nowy powiew od Słońca: EJB 3.0. Copyright Piotr Kochański & Erudis,

Nowy powiew od Słońca: EJB 3.0. Copyright Piotr Kochański & Erudis, Nowy powiew od Słońca: EJB 3.0 Wstęp Agenda EJB podstawowe informacje Problemy EJB 1.X i 2.X Zmiany wprowadzone w EJB v. 3.0 uproszczone API nowe komponenty encyjne wzorce i antywzorce Przykład, czyli

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

JPA Java Persistance API

JPA Java Persistance API JPA Java Persistance API Java Persistence API (JPA) Specyfiacja ipisująca standardy mapiwania ibieitiwi-relacyjnegi (ORM ibject relatinal mapping) Przyiładiwe implementacje: Hibernate OpenJPA EclipseLini

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

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

Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009 Konfiguracja i poprawne stosowanie Politechnika Wrocławska Informatyka 11 maja 2009 Agenda Wprowadzenie Konfiguracja i poprawne stosowanie 1 Wprowadzenie do ORM 2 jako framework ORM 3 Konfiguracja w projekcie

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Obiekt interfejsu Session Jest to podstawowy interfejs komunikacji pomiędzy aplikacją, a API Hibernate

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 26.05.2014 WYKŁAD 13 Refleksja Data Access Object

Bardziej szczegółowo

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

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

ORM w Javie. Adam Michalik 2007

ORM w Javie. Adam Michalik 2007 ORM w Javie Adam Michalik 2007 ORM ORM O/RM O/R mapping Object-Relational Mapping Mapowanie obiektowo relacyjne Odwzorowanie obiektowo-relacyjne Co to jest ORM? Odwzorowanie obiektowo-relacyjne pozwala

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

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Podstawowe wykorzystanie Hibernate

Podstawowe wykorzystanie Hibernate Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia

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

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

NHibernate. Narzędzie mapowania obiektowo - relacyjnego NHibernate Narzędzie mapowania obiektowo - relacyjnego Autor : Maciej Białorucki Mapowanie obiektowo-relacyjne Mapowanie obiektowo - relacyjne Object Relation Mapping Dwa światy Dlaczego nie stosować baz

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

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

Analiza porównawcza technologii odwzorowania obiektowo-relacyjnego dla aplikacji Java

Analiza porównawcza technologii odwzorowania obiektowo-relacyjnego dla aplikacji Java Analiza porównawcza technologii odwzorowania obiektowo-relacyjnego dla aplikacji Java Piotr Błoch, Marek Wojciechowski Politechnika Poznańska e mail: Marek.Wojciechowski@cs.put.poznan.pl Abstrakt. Zaawansowane

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

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.

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

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:

Bardziej szczegółowo

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

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013 Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013 1 Automated code generation To bardziej technika wspomagająca niż wzorzec, ale wykorzystywana w praktyce

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 24 maja 2018 Plan wykładu 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 509 / 553 Plan wykładu Trwałość obiektów 1 Trwałość obiektów

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

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

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1 Szkolenie wycofane z oferty Program szkolenia: Enterprise Java Beans 3.0/3.1 Informacje: Nazwa: Enterprise Java Beans 3.0/3.1 Kod: Java-EE-EJB Kategoria: Java EE Grupa docelowa: developerzy Czas trwania:

Bardziej szczegółowo

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

JAVA PERSISTENCE API. Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika. Waldemar Korłub Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika JAVA PERSISTENCE API Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Java Persistence API 2 Specyfikacja dla bibliotek

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

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

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE) Programowanie w języku Java Wykład 13: Java Platform, Enterprise Edition (Java EE) Standard J2EE Programowanie w języku Java 2 J2EE - komunikacja Programowanie w języku Java 3 J2EE warstwa biznesowa Programowanie

Bardziej szczegółowo

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

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

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż. Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu

Bardziej szczegółowo

Wdrożenie do projektu

Wdrożenie do projektu Wdrożenie do projektu Zaczynamy od stworzenia zwykłego projektu Java. Środowisko z jakiego korzystam to Netbeans IDE w wersji 8.1. Możesz wykorzystywać inne IDE, bylebyś stosował analogiczne kroki w swoim

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008 JDBC w LoXiMie Interfejs Java Database Connectivity dla systemu LoXiM Adam Michalik 2008 Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

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

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

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

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

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi?

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi? Mazur (m-a-t-i@o2.pl) 22 października 2008 Akademia Górniczo-Hutnicza, Automatyka i Robotyka Plan Wyjaśnienie tematyki Przykład wprowadzający Wyjaśnienie pojęć wydajnościowe, funkcjonalne Praktyczne przedstawienie

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

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

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

Wzorce dystrybucji i wspólbieżności autonomicznej

Wzorce dystrybucji i wspólbieżności autonomicznej Wzorce dystrybucji i wspólbieżności autonomicznej 1. Wzorce dystrybucji, fasada zdalna (Remote Facade), obiekt transfery danych (Data Transfer Object), 2. Wzorce współbieżności autonomicznej, blokada optymistyczna

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Paweł Rajba

Paweł Rajba Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Bazy danych Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2016 Plan wykładu Wstęp do baz danych Modele baz danych Relacyjne bazy danych Język SQL Rodzaje

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Wzorce projektowe warstwy danych

Wzorce projektowe warstwy danych POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2017

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2017 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2017 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.

Bardziej szczegółowo

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Programowanie w Javie 2. Płock, 26 luty 2014 r. Programowanie w Javie 2 Płock, 26 luty 2014 r. Zaliczenie wykładu i ćwiczeń Zaliczenie ćwiczeń (projekt na zaliczenie, 3 prace domowe) Zaliczenie wykładu (referat na 1h) Ocena ćwiczeń: 70% projekt + 30%

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

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

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych

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

Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych 1 Wstęp

Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych 1 Wstęp Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych Streszczenie. Rozdział podejmuje tematykę nowoczesnych rozwiązań bazodanowych w aplikacjach J2EE (ang. Java 2 Platform, Enterprise

Bardziej szczegółowo

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2 Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 O Sobie Od 2014

Bardziej szczegółowo