Programowanie wielowarstwowe i komponentowe

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

Download "Programowanie wielowarstwowe i komponentowe"

Transkrypt

1 Programowanie wielowarstwowe i komponentowe

2 HIBERNATE CD.

3 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 Osoba ma jeden Adres zameldowania Pojedynczy Adres zameldowania przynależy do jednej Osoby Wiele do wielu Wiele Studentów ma wiele Przedmiotów Wiele Przedmiotów przynależy do wielu Studentów

4 Tworzenie relacji 1:M/M:1 Po stronie pojedynczego obiektu mapowana jest kolekcja obiektów (List, Set, Map itp.) <one-to-many class="pl.example.wpis" /> Po stronie wielu obiektów, mapowany jest pojedynczy obiekt M:M 1:1 <many-to-one name="osoba" column="osoba_id class="pl.example.osoba" > Po obu stronach jest mapowana kolekcja <many-to-many column="przedmiot_id class="pl.example.przedmiot" /> <many-to-many column="student_id class="pl.example.student" /> Po obu stronach mapowane są obiekty <one-to-one name="osoba" class="pl.example.osoba /> <one-to-one name="adres class="pl.example.adres />

5 Typy kolekcji Hibernate <set> Wymaga podania kolumny wartości <map> Wymaga określenia kolumn klucza i wartości <list> Posortowawna, wymaga zaindeksowanej kolumny w tabeli pojedynczego obiektu <array> Mapowanie do zwykłej tablicy, wymaga zaindeksowanej kolumny w tabeli pojedynczego obiektu <bag> Podobnie jak lista, ale nie wymaga indeksu <idbag> Używany do relacji wiele do wielu

6 Połączenie poprzez <set> Powiązanie Osoba Wpis (do bloga) Mapowanie Osoba w klasie Wpis: <many-to-one name="osoba" column="osoba_id class="pl.example.osoba" /> Mapowanie zbioru Wpisów w klasie Osoba: <set name="wpisy" inverse="true > <key column="osoba_id not-null="true /> <one-to-many class="pl.example.wpis" /> </set>

7 Przykład relacji 1:M Relacja Osoba-Wpisy (np. do bloga) public class Osoba { private int id; private String imie; private String nazwisko; private Set<Wpis> wpisy; public class Wpis { private int id; private Osoba osoba; private String text;

8 Przykład relacji 1:M cd. Wpis.hbm.cfg <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class name="pl.example.wpis" table="wpis"> <id name="id" type="int"> <column name="id" /> <generator class="identity" /> </id> <many-to-one name="osoba" class="pl.example.osoba" > <column name="osoba_id" /> </many-to-one> <property name="text" type="java.lang.string"> <column name="text" /> </property> </class> </hibernate-mapping>

9 Przykład relacji 1:M cd. Osoba.hbm.cfg <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class name="pl.example.osoba" table="osoba"> <id name="id" type="int"> <column name="id" /> <generator class="identity" /> </id> <property name="imie" type="java.lang.string"> <column name="imie" /> </property> <property name="nazwisko" type="java.lang.string"> <column name="nazwisko" /> </property> <set name="wpisy" table="wpis" inverse="true" lazy="true"> <key> <column name="osoba_id" /> </key> <one-to-many class="pl.example.wpis" /> </set> </class> </hibernate-mapping>

10 Przykład relacji 1:M cd. hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" " <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> <property name="hibernate.connection.password">passsword</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/test7</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.mysql5dialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> </session-factory> </hibernate-configuration>

11 Przykład relacji 1:M cd. public class HibernateUtil { private static final SessionFactory sessionfactory; private static ServiceRegistry serviceregistry; static { try { Configuration config = new Configuration().configure(); config.addclass(pl.example.osoba.class); config.addclass(pl.example.wpis.class); } serviceregistry = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build(); sessionfactory = config.buildsessionfactory(serviceregistry); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } public static SessionFactory getsessionfactory() { return sessionfactory; } }

12 Przykład relacji 1:M cd. SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.opensession(); Transaction t = session.begintransaction(); Osoba o = new Osoba(); o.setimie("jan"); session.save(o); Wpis w = new Wpis(); w.settext("hello world!"); w.setosoba(o); session.save(w); w = new Wpis(); w.settext("inny tekst "); w.setosoba(o); session.save(w); session.flush(); t.commit(); session.close();

13 Zapytania do bazy danych Zapytania w języku HQL (Hibernate Query Language) Język od strony składni wyglądający jak SQL SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, połączenia, podzapytania (jeśli wykorzystywany SZBD je wspiera) W pełni zorientowany obiektowo dziedziczenie, polimorfizm, asocjacje Zapytania w natywnym SQL Możliwość wykorzystania specyficznych konstrukcji np. CONNECT Zapytania poprzez obiekty Criteria Budowa zapytań poprzez obiektowe API Zapytania poprzez obiekty Example Kryteria zapytania budowane w oparciu o przykładową instancję (QBE Query By Example) Filtry Aplikowane do kolekcji lub tablic

14 HQL list() Wykonywanie zapytań poprzez list() Zwraca cały wynik zapytania do kolekcji w pamięci (instancje pozostają w stanie trwałym) Przykład List<Wpis> wpisy = (List<Wpis>)session.createQuery( "from Wpis w where osoba.id=2").list(); for (Wpis wpis : wpisy) { System.out.println( wpis.getosoba().getimie() +" napisal " + wpis.gettext()); } List<Osoba> osoby = (List<Osoba>)session.createQuery( "from Osoba where id=11").list(); Set<Wpis> wpisyosoby = osoby.get(0).getwpisy(); for (Wpis wpis : wpisyosoby) { System.out.println( wpis.gettext() ); }

15 HQL iterate() Wykonywanie zapytań poprzez iterate() Zwraca wynik w kilku zapytaniach SELECT: Pobranie identyfikatorów Oddzielne zapytania pobierające poszczególne instancje Może być efektywniejsze od list(), gdy instancje już są w pamięci podręcznej, ale zazwyczaj wolniejsze Iterator osoby = session.createquery( "from osoba as os where os.miejscowosc = 'Częstochowa'").iterate(); while (osoby.hasnext()) { Osoba o = (Osoba) osoby.next(); }

16 Przykłady zapytań HQL from pl.example.osoba from Osoba from java.lang.object from Osoba where miejscowosc is not null order by naziwisko, imie from Osoba o, Wpis w where o.id = w.osoba.id select os.nazwisko from Osoba os where os.naziwsko like K% select sum(zarobki) from Osoba group by stanowisko select sum(zarobki) from Osoba group by stanowisko having sum(zarobki) > 2000

17 HQL Pobieranie obiektów z bazy danych Domyślnie w przypadku operacji połączenia, HQL nie pobiera natychmiast związanych obiektów i kolekcji Domyślnie są one pobierane gdy nastąpi do nich pierwsze odwołanie (tryb lazy ) HQL ignoruje w tym względzie ewentualne ustawienia podane przy odwzorowaniu Stanowi to problem, gdy odwołanie do dowiązanego obiektu lub kolekcji nastąpi po zamknięciu sesji, w której wykonano zapytanie Rozwiązaniem jest zastosowanie klauzul (działają dla list()): INNER JOIN FETCH - dla pobrania pojedynczych obiektów LEFT JOIN FETCH dla pobrania kolekcji from Osoba as os left join fetch os.wpisy as w from Wpis as w inner join fetch w.osoba

18 Przetwarzanie wyników zapytań Zapytania sparametryzowane (styl? lub :nazwa) List depts = (List)session.createQuery( "from Osoba as os where os.miejscowosc =?" ).setstring(0, "Częstochowa").list(); Paginacja Query q = session.createquery("from Osoba as os where os.loc = 'Częstochowa'"); q.setfirstresult(0); q.setmaxresults(2); List depts = q.list(); Przewijalne wyniki zapytań Poprzez rzutowanie do ScrollableResults Wymaga otwartego połączenia z bazą i otwartego kursora Dostępne gdy sterownik JDBC wspiera przewijalne zbiory wynikowe Query q = session.createquery("select... from..."); ScrollableResults kursor = q.scroll();

19 Zapytania w Hibernate Różne możliwości wykonania zapytania w Hibernate Zapytanie przez ID Zapytanie przez kryteria Zapytanie przez przykład Hibernate Query Language (HQL) Zapytania klasycznym SQL przez Hibernate Hibernate wykonuje zoptymalizowane zapytania w zależności od rodzaju bazy danych

20 Zapytanie przez ID Wyszukuje obiekty po identyfikatorze Szybkie typ zapytania, ale uzyskiwany jest jedynie pojedynczy obiekt Osoba osoba = (Osoba)session.get( Osoba.class, osobaid);

21 Zapytanie przez kryteria Zapytanie jest tworzone przez wiele kryteriów Wykorzystywane są 4 interfejsy: org.hibernate.criteria Bazowy obiekt dla tego typu wyszukiwania, tworzony przez session Zawiera wszystkie restrykcje, agregacje, sortowania dla pojedynczego zapytania org.hibernate.detachedcriteria Podobnie jak Criteria, ale dołączany do sesji i uruchamiany org.hibernate.criterion.criterion Reprezentuje pojedyncze ograniczenie dla danego zapytania Odpowiednik where w zapytaniu SQL org.hibernate.criterion.restrictions Klasa pomocnicza używana do tworzenia obiektów klasy Criterion

22 org.hibernate.criteria Tworzenie poprzez podanie głównej klasy session.createcriteria(class); session.createcriteria(string classname); Dodanie restrykcji (klauzula where) addcriterion(criterion criterion); Dodanie asocjacji, dodanie asocjacji jako aliasu createalias(string assocjacjonpath, String alias); Dodanie sortownia (order by) addorder(order order) Rezultaty jako lista list(); Rezultat jako pojedynczy obiekt uniqueresult();

23 org.hibernate.detachedcriteria Nie jest wymagana sesja, aby utworzyć obiekt DetachedCriteria.forClass(Class); DetachedCriteria.forClass(String classname); Tworzenie przez statyczne metody Metody identyczne jak w Criteria Za wyjątkiem metod otrzymujących wyniki list() i uniqueresult() Do otrzymania wyników niezbędne jest utworzenie obiektu Criteria getexecutablecriteria(session);

24 org.hibernate.criterion.restrictions lt(string propertyname, String value); gt(string propertyname, String value); eq(string properyname, String value); ne(string propertyname, String value); like(string propertyname, String value); isempty(string propertyname, String value); isnotempty(string propertyname, String value); isnull(string propertyname, String value); isnotnull(string propertyname, String value); in(string propertyname, Collection values); alleq(map propertynamevalues); between(string propertyname, Object lo, Object hi);

25 Budowanie zapytania Criteria criteria = session.createcriteria(osoba.class); List osoby = criteria.list(); Criteria criteria = session.createcriteria(osoba.class).addorder(order.asc("nazwisko")); List osobyposortowaneponazwisku = criteria.list();

26 Wyszukiwanie pojedynczych obiektów Criteria criteria = session.createcriteria(osoba.class); Criterion restrictby = Restrictions.eq(" ", "jan@gmail.com"); cirteria.add(restrictby ); Osoba osoba = (Osoba)criteria.uniqueResult(); Inaczej: Osoba osoba = (Osoba)session.createCriteria(Osoba.class).add(Restriction. eq(" ", "jan@gmail.com") ).uniqueresult();

27 Inne przykłady List osoby = session.createcriteria(osoba.class).add( Restrictions.between("zarobki",1000, 5000) ).list(); List osoby = session.createcriteria(osoba.class).add( Restrictions.like("nazwisko","K%").ignoreCase() ).add( Restrictions.like("imie","J%").ignoreCase() ).list();

28 OR i AND List osoby = session.createcriteria(osoba.class).add(restrictions.or( Restrictions.and( Restrictions.like("nazwisko","K%"), Restrictions.like("imie","J%") ), Restrictions.like(" ", "%gmail.com") ) ).list()

29 Użycie DetachedCriteria DetachedCriteria detachedcriteria = DetachedCriteria.forClass(Osoba.class).add(Restrictions.ilike("nazwisko","K%")); Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Criteria criteria = detachedcriteria.getexecutablecriteria(session); List accountowners = regularcriteria.list(); Lub: List accountowners = detachedcriteria.getexecutablecriteria(session).list();

30 Zapytanie przez przykład Zapytanie przez przykład polega na przygotowaniu przykładowego obiektu i na jego podstawie wygenerowania zapytania do bazy danych Klasa org.hibernate.criterion.example Obiekt tworzony przez create(object obj)

31 Zapytanie przez przykład Osoba osoba = new Osoba(); osoba.setnazwisko("kowalski"); Example osobaprzyklad = Example.create(osoba); List osoby = session.createcriteria(osoba.class).add(osobaprzyklad).list();

32 Ustawienie obiektu-przykładu Domyślnie ignorowane pola: Identyfikator Asocjacje Wartości null Dodatkowe ustawienia: enablelike(matchmode mode) Włączenie like do wszystkich String-ów ignorecase() excludezeroes(); Wyłącznie zer excludeproperty(string name); Wyłączenie konkretnej właściwości excludenone(); Nie wyłączaj zer i null-i

33 Dziedziczenie Dziedziczenie w Javie: extends lub implements Problem z dziedziczeniem w relacyjnej bazie danych Hibernate cztery sposoby na dziedziczenie Bez dziedziczenia Tabela dla konkretnej klasy Tabela dla hierarchii klas Tabela dla subklasy

34 Bez dziedziczenia Jedna tabela jest przeznaczona dla konkretnej klasy Mapowanie zawiera wszystkie pola, nawet wspólne dla innych klas Oddzielne pliki mapowania dla każdej z klas

35 Bez dziedziczenia KontoROR.java public class KontoROR extends Konto { private int kontororid; private String dostep; private double saldo; private Date datautworzenia; KontoOszczednosciowe.java public class KontoOszczednosciowe extends Konto { private int kontooszczednoscioweid; private double procent; private double saldo; private Date datautworzenia;

36 Bez dziedziczenia <hibernate-mapping> <class name="pl.example.kontooszczednosciowe" table="kontooszczednosciowe"> <id name="kontooszczednoscioweid" type="int"> <column name="kontooszczednoscioweid" /> <generator class="identity" /> </id> <property name="saldo" type="double"> <column name="saldo" /> </property> <property name="datautworzenia" type="timestamp"> <column name="data_utworzenia" /> </property> <property name="procent" type="double"> <column name="procent" /> </property> </class> </hibernate-mapping>

37 Bez dziedziczenia <hibernate-mapping> <class name="pl.example.kontoror" table="kontoror"> <id name="kontororid" type="int"> <column name="kontororid" /> <generator class="identity" /> </id> <property name="saldo" type="double"> <column name="saldo" /> </property> <property name="datautworzenia" type="timestamp"> <column name="data_utworzenia" /> </property> <property name="dostep" type="java.lang.string"> <column name="dostep" /> </property> </class> </hibernate-mapping>

38

39 Tabela na klasę Jedna tabela na klasę Zapis w jednym pliku mapowania Bazowanie na superklasie Definicje <union-subclasses>

40 Tabela na klasę Konto.java public class Konto { private int kontoid; private double saldo; private Date datautworzenia; KontoROR.java public class KontoROR extends Konto { private String dostep; KontoOszczednosciowe.java public class KontoOszczednosciowe extends Konto { private double procent;

41 Tabela na klasę <hibernate-mapping> <class name="pl.example.konto" table="konto" abstract="true"> <id name="kontoid" type="int" column="kontoid" > <generator class="hilo" /> </id> <property name="saldo" type="double" column="saldo" /> <property name="datautworzenia" type="java.util.date" column="datautworzenia" /> <union-subclass name="pl.example.kontoror" table="kontoror"> <property name="dostep" type="java.lang.string" column="dostep" /> </union-subclass> <union-subclass name="pl.example.kontooszczednosciowe" table="kontooszczednosciowe"> <property name="procent" type="double" column="procent" /> </union-subclass> </class> </hibernate-mapping>

42 Przykład session = sf.opensession(); t = session.begintransaction(); KontoOszczednosciowe k1 = new KontoOszczednosciowe(); k1.setdatautworzenia(new Date()); k1.setprocent(10); session.save(k1); KontoROR k2 = new KontoROR(); k2.setdatautworzenia(new Date()); k2.setdostep("ok"); session.save(k2); t.commit(); session.close();

43

44 Tabela na hierarchię klas Jedna tabela dla wszystkich subklas Tabela posiada kolumny dla wszystkich możliwych pól Plik mapowania Pojedynczy plik mapowania Definicja <subclass> Używana kolumna, wskazująca na typ klasy

45 <hibernate-mapping> <class name="pl.example.konto" table="konto" abstract="true"> <id name="kontoid" type="int" column="kontoid"> <generator class="hilo" /> </id> <discriminator column="konto_type" type="string"/> <property name="saldo" type="double" column="saldo" /> <property name="datautworzenia" type="java.util.date" column="datautworzenia" /> <subclass name="pl.example.kontoror" discriminator-value="r"> <property name="dostep" type="java.lang.string" column="dostep" /> </subclass> <subclass name="pl.example.kontooszczednosciowe" discriminator-value="o"> <property name="procent" type="double" column="procent" /> </subclass> </class> </hibernate-mapping>

46

47 Tabela na subklasę Jedna tabela dla superklasy i po jednej dla każdej z subklas Kolumny są współdzielone w tabeli superklasy Tabele subklas zawierają charakterystyczne dla nich klumny Mapowane klas Pojedynczy plik mapowania bazujący na superklasie Polecenie <joined-subclass>

48 Tabela na subklasę <hibernate-mapping> <class name="pl.example.konto" table="konto" abstract="true"> <id name="kontoid" type="int" column="kontoid"> <generator class="identity" /> </id> <property name="saldo" type="double" column="saldo" /> <property name="datautworzenia" type="java.util.date" column="datautworzenia" /> <joined-subclass name="pl.example.kontoror" > <key column="konto_ror_id" /> <property name="dostep" type="java.lang.string" column="dostep" /> </joined-subclass> <joined-subclass name="pl.example.kontooszczednosciowe" > <key column="konto_oszcz_id" /> <property name="procent" type="double" column="procent" /> </joined-subclass> </class> </hibernate-mapping>

49 Tabela na subklasę

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

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

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

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

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

Bardziej szczegółowo

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

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

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

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

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

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

Relacyjne bazy danych. Podstawy SQL

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

Bardziej szczegółowo

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

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

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład. 1 Hibernate 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład. 2 Wprowadzenie Hibernate (http://www.hibernate.org) jest narzędziem realizującym odwzorowanie obiektów Javy na

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >. Zaawansowane aplikacje internetowe laboratorium Hibernate. Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne NetBeans IDE 6.7.1 (do pobrania z http://www.netbeans.org/downloads/index.html).

Bardziej szczegółowo

akademia androida Składowanie danych część VI

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

Bardziej szczegółowo

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. Java i bazy danych 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. 1 JDBC - wprowadzenie Java Database Connectivity (JDBC) to specyfkacja określająca zbiór klas i interfejsów

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

Język SQL, zajęcia nr 1

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

Bardziej szczegółowo

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie w języku Java. Bazy danych SQLite w Javie Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android

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

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

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

Strumieniowe bazy danych. Piotr i Paweł

Strumieniowe bazy danych. Piotr i Paweł Strumieniowe bazy danych Piotr i Paweł Źródła zapotrzebowania na DSMS Finanse (giełda, przewidywanie trendów, wykrywanie defraudacji, szacowanie ryzyka) Zarządzanie ruchem i wydajnością sieci telekomunikacyjnych

Bardziej szczegółowo

Baza danych Uczniowie.mdb

Baza danych Uczniowie.mdb Baza danych Uczniowie.mdb Zadania: 1. Tabele: Założyć bazę danych uczniowie.mdb o strukturze danych: Uczniowie-dane - zip Uczniowie1_dane - zip uczzsbd1.mdb 1) UCZNIOWIE (NRU, nazwisko, imie) a) Wpisać

Bardziej szczegółowo

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

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

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

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

Bardziej szczegółowo

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

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

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX Aktualizowanie dokumentów XML ( Oracle ) do aktualizowania zawartości dokumentów XML służy między innymi funkcja updatexml. wynikiem jej działania jest oryginalny dokument ze zmodyfikowanym fragmentem,

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z Bazy danych Paweł Kasprowski pawel@kasprowski.pl Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy Przesłanie zapytania SQL Odebranie rezultatów Pierwszy przykład JDBC

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

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

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017 Informatyka I BAZY DANYCH dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Plan wykładu Definicja systemu baz danych Modele danych Relacyjne bazy danych Język SQL Hurtownie danych

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

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się. Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username

Bardziej szczegółowo

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

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

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Problem: Jak zaimplementować stos? Co się stanie gdy dodamy do stosu obiekt typu Czlowiek? Co się stanie, gdy spróbujemy ten obiekt odczytać

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

Bardziej szczegółowo

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

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

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Związki między klasami: jest i zawiera Programowanie obiektowe Przkład: Pojazd Kompozycja i dziedziczenie klas Silnik Pojazd silnikowy Rower Wóz konny Paweł Rogaliński Instytut Informatyki, Automatyki

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

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

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

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

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

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

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

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

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo