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 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): https://repository.jboss.org/nexus/content/groups/public/org/hibernate Maven Central (z niewielkim, kilkudniowym opóźnieniem): SourceForge: https://sourceforge.net/projects/hibernate/files/hibernate4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

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

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

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

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

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

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

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

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH 1 Technologie informacyjne WYKŁAD IV WPROWADZENIE DO BAZ DANYCH MAIL: WWW: a.dudek@pwr.edu.pl http://wgrit.ae.jgora.pl/ad Bazy danych 2 Baza danych to zbiór danych o określonej strukturze. zapisany na

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

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

Czym jest Ruby on Rails?

Czym jest Ruby on Rails? Czym jest Ruby on Rails? Ruby on Rails - napisany w języku Ruby framework open source do szybkiego tworzenia aplikacji internetowych w oparciu o architekturę MVC David Heinemeier Hansson twórca Rails Ruby

Bardziej szczegółowo

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne przedmioty.

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

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

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

edziennik Ustaw Opis architektury

edziennik Ustaw Opis architektury edziennik Ustaw Opis architektury Spis treści 1 Wstęp...3 2 Architektura systemu...3 2.1 Schemat poglądowy rozwiązania...3 2.2 Architektura logiczna...4 2.3 Opis elementów systemu...5 2.3.1 Moduł Udostępniający...5

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

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013 1 Dependency Injection Dependency Injection = zestaw technik pozwalających tworzyć

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

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

SZKOLENIE TWORZENIE SYSTEMÓW

SZKOLENIE TWORZENIE SYSTEMÓW SZKOLENIE TWORZENIE SYSTEMÓW INFORMATYCZNYCH Z UŻYCIEM GROOVY I GRAILS KOD: JGR Strona 1 1 Opis Platforma Java EE to zbiór zaawansowanych narzędzi umożliwiających tworzenie systemów korporacyjnych. Jest

Bardziej szczegółowo

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0 Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0 Marek Wojciechowski Politechnika Poznańska, PLOUG e mail: Marek.Wojciechowski@cs.put.poznan.pl Abstrakt. Jedną z nowych cech

Bardziej szczegółowo

Serwery LDAP w środowisku produktów w Oracle

Serwery LDAP w środowisku produktów w Oracle Serwery LDAP w środowisku produktów w Oracle 1 Mariusz Przybyszewski Uwierzytelnianie i autoryzacja Uwierzytelnienie to proces potwierdzania tożsamości, np. przez: Użytkownik/hasło certyfikat SSL inne

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

*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

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Projektowanie aplikacji z bazami danych

Projektowanie aplikacji z bazami danych NHibernate Instytut Informatyki Uniwersytet Wrocławski Plan wykładu NHibernate Interfejsy Trwałość automatyczna i przezroczysta Definicja metadanych odwzorowujących Odwzorowanie dziedziczenia Mapowanie

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

JBoss Application Server

JBoss Application Server Zagadnienia Programowania Obiektowego 4 grudnia 2006 1 Co to jest? 2 Co potrafi? Realizowane standardy Własne rozszerzenia Programowanie aspektowe Klastrowanie 3 Jak się z tym pracuje? Instalacja i konfiguracja

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

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

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie Opracował: dr inż. Piotr Suchomski Prowadzący Katedra Systemów Multimedialnych dr inż. Piotr Suchomski (e-mail: pietka@sound.eti.pg.gda.pl) (pok. 730) dr inż. Andrzej Leśnicki

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

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