DPKOM_7 Dotazy a EJB QL

Rozměr: px
Začít zobrazení ze stránky:

Download "DPKOM_7 Dotazy a EJB QL"

Transkript

1 DPKOM_7 Dotazy a EJB QL 1

2 Obsah přednášky API dotazů (Query API) EJB QL Nativní dotazy pojmenované dotazy (Named Queries) 2

3 API dotazů EJB QL je deklarativní dotazovací jazyk, podobný SQL pro relační databáze, ale je uzpůsobený pro práci s javovskými objekty. Při prováděním dotazu EJB QL používá správce perzistence informace získané z mapovaných metadat a převede dotaz na nativní SQL dotaz. 3

4 API dotazů EJB QL a nativní dotazy SQL jsou prováděny prostřednictvím rozhraní javax.persistence.query. Toto dotazovací API dodává metody pro stránkování result set, stejně jako možnosti předávání javovských parametrů do dotazu. Dotazy mohou být předdefinovány pomocí anotací nebo XML, nebo vytvořeny dynamicky za běhu prostřednictvím API EntityManageru. 4

5 package javax.persistence; public interface Query { public List getresultlist(); public Object getsingleresult(); public int executeupdate(); public Query setmaxresults(int maxresult); public Query setfirstresult(int int startposition); public Query sethint(string hintname, Object value); public Query setparameter(string name, Object value); public Query setparameter(string name, Date value, TemporalType temporaltype); public Query setparameters(string name, Calendar value, TemporalType temporaltype); public Query setparameter(int position, Object value); public Query setparameter(int position, Date value, TemporalType temporaltype); public Query setparameter(int position, Calendar value, TemporalType temporaltype); public Query setflushmode(flushmodetype FlushModeType flushmode); } Poznámky Query API Ve specifikaci Java Persistence je rozsáhlé rozhraní Javy, které můžete získat za běhu od entitního manažera.

6 package javax.persistence; public interface EntityManager { public Query createquery(string ejbqlstring); public Query createnamedquery(string name); public Query createnativequery(string sqlstring); public Query createnativequery(string sqlstring, Class resultclass); public Query createnativequery(string sqlstring, String resultsetmapping); } Poznámky Dotazy jsou vytvářeny s použitím těchto metod EntityManageru:

7 try { Query query = entitymanager.createquery createquery( form Customer c whwre c.firstname firstname= Bill Bill and c.lastname lastname= Burke Burke ); Customer cust = (Customer)query.getSingleResult() getsingleresult(); } catch(entitynotfoundexception notfound) { } catch(nonuniqueresultexception nonunique) { } Poznámky Využití EntityManageru a metody createquery(), která vytváří dotaz dynamicky za běhu: Uvedený dotaz je pro entitu jednoho jedinečného (single, unique) zákazníka jménem Bill Burke. Dotaz je vykonán vyvoláním metody getsingleresult(). Metoda předpokládá návrat pouze jednoho výsledku. V případě nenalezení entity je vyhozena výjimka EntityNotFoundException a v případě nalezení více entit je vyhozena výjimka NonUniqueResultException.

8 API dotazů V případě, že bude výsledkem dotazu více entit, např. bude existovat několik osob se jménem Bill Burke, je možné využít metodu getresultlist(): Query query = entitymanager.createquery( from Customer c where c.firstname= Bill and c.lastname= Burke ); java.util.list bills = query.getresultlist(); 8

9 Parametry Velmi podobně jako java.sql.preparedstatement v JDBC, EJB QL dovoluje specifikovat parametry v query deklaracích, takže je možné query (dotaz) použít znova a několikrát na různé množiny parametrů. Modifikujeme předchozí příklad: 9

10 public List findbyname(string first, String last) { Query query = entitymanager.createquery( from Customer c where c.firstname firstname=: =:first and c.lastname lastname=: =:last last); query.setparameter setparameter( first, first); query.setparameter setparameter( last last, last); return query.getresultlist(); } Poznámky Znak : následovaný jménem parametru se používá v příkazech EJB QL k identifikaci jména parametru.

11 public List findbyname(string first, String last) { Query query = entitymanager.createquery( from Customer c where c.firstname firstname=?1 and c.lastname lastname=?2?2); query.setparameter setparameter(1, first); query.setparameter setparameter(2, last); return query.getresultlist getresultlist(); } Poznámky Místo řetězcových jmenných parametrů umožňuje metoda setparameter() také číselné parametry pozice. Znak? je použit místo znaku :, který je použit se jmenným parametrem.

12 Parametry datumu Ty se používají, pokud do dotazu potřebujeme zapracovat parametry java.util.calendar nebo java.util.date. Pak použijete speciální metody setparameter(): 12

13 package enum TemporalType { DATE, //java java.sql sql.date TIME, //java java.sql sql.time TIMESTAMP //java java.sql sql.timestamp } Poznámky public interafce Query { Query setparameter(string name, java.util util.date value, TemporalType temporaltype); Query setparameter(string name, java.util util.calendar value, TemporalType temporaltype); Query setparameter(int position, java.util util.date value, TemporalType temporaltype); } Query setparameter(int position, java.util util.date value, TemporalType temporaltype); Protože parametry mohou představovat různé věci v daném čase, je třeba říci Query objektu, jak by měl použít tyto parametry. To řeší parametr javax.persistence.temporaltype. Ten říká rozhraní Query, který databázový typ použít při převodu java.util.date nebo java.util.calendar na nativní typ SQL.

14 Stránkování výsledků Paging Results API Query má dvě vestavěné funkce pro řešení problému stránkování příliš rozsáhlých výsledků. Jedná se o setmaxresults() a setfirstresult(): public List getcustomers(int max, int index) { Query query = entitymanager.createquery( from Customer c ); return query.setmaxresults(max). setfirstresult(index). getresultlist(); } 14

15 Stránkování výsledků Paging Results Metoda getcustomers() provede dotaz a získá všechny zákazníky databáze. Metoda setmaxresults() omezuje (limituje) počet předaných zákazníků. Metoda setfirstresult()říká query, od které pozice chceme dotazované zákazníky. Je-li max-result nastaven na 3 a first-result na 5, výsledkem budou zákazníci 5, 6, 7. 15

16 List results; int first = 0; int max = 10; do { results = getcustomers(max max, first); Iteratir it = results.iterator iterator(); while(it it.hasnext hasnext()) { Customer c = (Customer)it it.getnext getnext(); System.out out.println println(c. (c.getfirstname getfirstname() + + c.getlastname getlastname()); } entitymanager.clear clear(); first = first + results.getsize getsize(); } while (results results.size size() > 0); Poznámky Fragment kódu při práci s databází: Metoda entitymanager.clear() způsobí odpojení (detach) všech zákazníků (customers), které jsme vypisovali a jejich ponechání garbage collectoru.

17 Pomůcky Hints Někteří dodavatelé Java Persistence poskytují dodatečné možnosti, které se mohou v výhodou použít při dotazech. JBoss EJB 3.0 implementace např. dovoluje definovat timeout pro query. Tyto prostředky se dají deklarovat pomocí metody sethint(), která má dva parametry, name typu String a libovolný objektový parametr. Query query = manager.createquery( from Customer c ); query.sethint( org.hiberante.timeout,1000); 17

18 FlushMode Problémem je změna flushmodu entitním manažerem během provádění dotazu. Proto rozhraní Query poskytuje metodu setflushmode(), pro tento účel: Query query = manager.createquery( from Customer c ); query.setflushmode(flushmodetype.commit); V uvedeném příkladěříkáme správci perzistence, aby nedělal žádné automatické ukládání (flushing) před dokončením dotazu. Doporučeno: FlushModeType.AUTO 18

19 EJB QL EJB QL je vyjádřeno v termínech schéma abstraktní perzistence entity: jméno abstraktního schéma, základní vlastnosti a relační vlastnosti. EJB QL používá: jména abstraktního schématu k identifikaci beanu, základní vlastnosti ke specifikaci hodnot a relační vlastnosti pro navigaci relacemi. 19

20 EJB QL - Abstraktní schéma jmen Abstraktní schéma jmen může být definováno prostřednictvím metadat, nebo může mít defóltní specifikační hodnotu. Tato defóltní hodnota je nekvalifikované jméno entity, pokud atribut name() není specifikován v anotaci. V následujícím fragmentu není specifikován proto bude použito jméno Customer, jako odkaz na danou entitu ve voláních EJB QL: 20

21 package com.titan..titan.domain domain; public class Customer {...} entitymanager.createquery( SELECT c FROM Customer AS c ); c Zde je specifikované jméno Cust, na které je možné se odkazovat v dotazech EJB QL: package com.titan..titan.domain name= Cust Cust ) public class Customer {... } entitymanager.createquery( SELECT c FROM Cust AS c ); c

22 EJB QL - Jednoduché dotazy Takový dotaz nemá klauzuli WHERE a má pouze typ abstraktního schématu. SELECT OBJECT( c ) FROM Customer AS c Výraz je podobný SQL které dovoluje, aby identifikátor byl asociovaný s tabulkou. Identifikátory nemohou být stejné jako existující jména hodnot abstraktního schématu. 22

23 EJB QL - Jednoduché dotazy Navíc identifikátory proměnných jmen nerozlišují malá a velká písmena. Následující výraz je neplatný, protože Customer je jméno abstraktního schéma EJB Customer: SELECT OBJECT( customer ) FROM Customer AS customer Klauzule SELECT určuje typ libovolné hodnoty, která je vrácena. Operátor OBJECT() je volitelný a je to víceméně požadavek předchozí verze EJB

24 Struktura vazeb mezi třídami využito v příkladech dotazů 24

25 EJB QL- Výběr entity a relačních vlastností Klauzule SELECT dovolují v EJB QL vrátit libovolný počet základních nebo relačních vlastností. Příklad na navrácení jmen a příjmení všech pasažérů na Titan plavbě: SELECT c.firstname, c.lastname FROM Customer AS c Jména perzistentních vlastností jsou identifikována přístupovým typem třídy entitního beanu bez ohledu na to, zda jste použili anotaci mapování na metody get nebo set. 25

26 EJB QL - Výběr entity a relačních vlastností Pokud použijete get nebo set metody ke specifikaci vašich perzistentních vlastností, část get je jména metody je odstraněna a následuje malé písmeno: 26

27 @Entity public class Customer implements java.io io.serializable { private int id; private String first; private String public int getid() { return id; } public String getfirstname() { return first; } public String getlastname() { return last; } Poznámky

28 EJB QL - Výběr entity a relačních vlastností Klauzule SELECT bude mít následující tvar: SELECT c.firstname, c.lastname FROM Customer AS c Pokud nejsou deklarovánu get a set metody, přistupuje se k vlastnostem přímo pomocí jmen vlastností. 28

29 Query query = manager.createquery( SELECT c.firstname firstname, c.lastname FROM customer AS c ); c List results = query.getresultlist getresultlist(); Iterator it = result.iterator iterator(); while(it it.hasnext hasnext()) { Object[] result = (Object( Object[]) [])it it.next next(); String first = (String( String)result result[0]; String last = (String( String)result result[1]); } Poznámky Pokud dotaz vrátí více než jednu položku, je třeba použít metodu Query.getResultList( ). Výsledek je agregován do pole objektů (Object[]) v List:

30 EJB QL - Výběr entity a relačních vlastností Je možné také použít tzv. jedno hodnotovou relaci v prostém příkazu selekce např. při získání kreditní karty zákazníka: SELECT c.creditcard FROM Customer c EJB QL využije navigace viz obrázek. Podobně se můžeme dostat k položce city v Address: SELECT c.address.city FROM Customer AS c 30

31 EJB QL - Výběr entity a relačních vlastností Je také možná následující cesta dotazu, ovšem za předpokladu navigace: Customer->CreditCard->CreditCompany->Address: SELECT c.creditcard.creditcompany.address.city FROM Customer AS c Navigaci cesty není možné provádět za položky perzistence (perzistence properties). Třída je uvedena jako datový atribut jiné třídy. 31

32 EJB QL - Výrazy konstruktoru Jedním z nejmocnějších rysů EJB QL je schopnost specifikovat konstruktor uvnitř klauzule SELECT, který může alokovat obyčejné javovské objekty (ne entity) a předat specifikované sloupce entity do konstruktoru. 32

33 Poznámky public class Name { private String first; private String last; public Name(String first, String last) { this.first = first; this.last = last; } public String getfirst() { return first; } public String getlast() {return last; } } Agregace jméno a příjmení z entity Customer do javovského objektu Name:

34 EJB QL - Výrazy konstruktoru Nyní je možné vrátit dotazem seznam objektů třídy Name, místo pouhého seznamu řetězců: SELECT new com.titan.domain.name(c.firstname, c.lastname) FROM Customer c Objekt Query bude automaticky alokovat instanci třídy Name pro každý řádek databáze. 34

35 EJB QL - Operátory IN a INNER JOIN Mnoho relací mezi entitními beany je založeno na kolekcích. Je důležité zpřístupnit a vybrat tyto relace. Není možné vybrat prvek přímo z relace založené na kolekci. Tuto činnost zvládne operátor IN: SELECT r FROM Customer AS c, IN(c.reservations) r Operátor IN přiřadí jednotlivé prvky ve vlastnosti rezervace do identifikátoru r. 35

36 EJB QL - Operátory IN a INNER JOIN Pomocí identifikátoru, který reprezentuje jednotlivé prvky kolekce, se na ně můžeme odkázat přímo a dokonce je vybrat v příkazu EJB QL. Příkaz vybere každou plavbu (cruise), kterou má zákazník rezervovanou: SELECT r.cruise FROM CUSTOMER AS c, IN( c.reservations ) r 36

37 EJB QL - Operátory IN a INNER JOIN Předchozí dotaz může být také vyjádřen pomocí INNER JOIN: SELECT r.cruise FROM Customer c INNER JOIN c.reservations r 37

38 EJB QL - Operátory IN a INNER JOIN Operátor INNER JOIN je intuitivním operátorem hlavně pro vývojáře z relačního světa. Příklad speciálnějších výběrů, které spíše demonstrují možnosti uváděných operátorů: SELECT cbn.ship FROM Customer AS c, IN ( c.reservations ) r, IN( r.cabin ) cbn 38

39 EJB QL - Operátory IN a INNER JOIN Alternativně: SELECT cbn.ship FROM Customer c INNER JOINM c.reservations r INNER JOIN r.cabins cbn Tyto dotazy vyberou všechny lodě, na které má zákazník rezervace. 39

40 EJB QL - LEFT JOIN Tato syntaxe umožňuje procházet množinu entit, kde hledané hodnoty příkazu join nemusí existovat. Např. je třeba vypsat všechna jména zákazníků a všechna jejich telefonníčísla. Některý zákazník může mít více telefonních čísel, jiný žádné. SELECT c.firstname, c.lastname, p.number FROM Customer c LEFT JOIN c.phonenumbers p 40

41 EJB QL - Fetch Joins Tato syntaxe dovoluje znova nahrát relace entity, i když vlastnost relace má nastavený FetchType na LAZY. Např. deklarujeme relaci one-to-many mezi entitou Customer a entitou public Collection<Phone> getphones() {return phones; } Když chceme získat informace o všech zákaznících, nejdříve se dotážeme na všechny zákazníky a pak budeme traverzovat metodou getphones() jejich telefonníčísla: 41

42 Poznámky 1 Query query = manager.createquery( SELECT c FROM Customer c ); c 2 List results = query.getresultlist getresultlist(); 3 Iterator it = results.iterator iterator(); 4 while (it it.hasnext hasnext()) { 5 Customer c = (Customer)it it.next next(); 6 System.out out.print print(c. (c.getfirstname getfirstname()+ ()+ + c.getlastname getlastname()); 7 for (Phone p : c.getphonenumbers getphonenumbers()) { 8 System.out out.print print(p. (p.getnumber getnumber() + ); 9 } 10 System.out out.println println( ); 11 } Problémy způsobuje to, že relace Phone je deklarovaná jako lazy, a proto kolekce Phone nebude instanciována při provádění úvodního dotazu viz. řádek 1. Když je volána metoda getphonenumbers() řádek 7, správce persistence musí dělat dodatečný dotaz, aby dostal telefonníčísla asociovaná se zákazníkem. Nazývá se to problém N + 1, protože se musí udělat N extra dotazů za původním úvodním dotazem. Přitom je snaha omezovat počty dotazů v databázi.

43 EJB QL - Fetch Joins Tento problém právěřeší JOIN FETCH. Podívejme se jak bude vypadat modifikovaný dotaz: SELECT c FROM Customer c LEFT JOIN FETCH c.phones Příkaz LEFT JOIN FETCH znova nahraje asociace Phone. Místo N+1 dotazů v databázi, je vykonán pouze jeden úvodní. 43

44 EJB QL - Použití DISTINCT Klíčové slovo DISTINCT zabezpečí, že dotaz nevrací duplikáty. SELECT DISTINCT cust FROM Reservation AS res, IN (res.customers) cust 44

45 Poznámky SELECT c FROM Customer AS c WHERE c.creditcard.creditcompany.name = Capital One SELECT s FROM Ship AS s WHERE s.tonnage = Klauzule WHERE a literály Klauzule WHERE pracuje velmi podobně jako v SQL SELECT c FROM Customer AS c WHERE c.hasgoodcredit = TRUE

46 EJB QL - Klauzule WHERE a IN Klauzule IN testuje přítomnost v seznamu literálů. Např. v následujícím příkladě operátor EJB QL IN testuje, zda zákazníci pocházení z uvedených států: SELECT c FROM Customer AS c WHERE c.address.state IN( FL, TX, MI, WI, MN ) 46

47 EJB QL - Klauzule ORDERED BY SELECT c FROM Customer AS c ORDERED BY c.lastname 47

48 Hromadné operace UPDATE a DELETE Operaci uvedeme na příkladě, ve kterém chceme přidat všem zákazníkům se jménem Bill Burke $10. UPDATE Reservation res SET res.amountpaid = (res.amountpaid + 10) WHERE EXISTS ( ) SELECT c FROM res.customers c WHERE c.firstname = Bill AND c.lastname = Burke 48

49 Hromadné operace UPDATE a DELETE Dále chceme odstranit všechny rezervace vytvořené Bill Burkem: DELETE FROM Reservation res WHERE EXISTS ( SELECT c FROM res.customers c WHERE c.firstname = Bill AND c.lastname= Burke ) 49

50 Jednoduché entitní nativní dotazy Tyto dotazy vezmou příkaz SQL a implicitně ho mapují do jedné entity založené na mapování metadat, která byla deklarovaná pro tuto entitu. Očekává se, že sloupce vrácené v result setu nativního dotazu, budou perfektně souhlasit s O/R entitním mapováním. Query query = manager.createnativequery( ); SELECT p.phone_pk, p.phone_number, p.type FROM PHONE AS p, Phone.class Všechny vlastnosti entit musí být vytaženy. 50

51 Složitější nativní dotazy Query createnativequery(string sql, String mappingname) Tato metoda entitního manažeru dovoluje složitější mapování nativního SQL. Vrací najednou více entit a skalár sloupcových hodnot. Parametr mappingname odkazuje Uvedená anotace se používá na specifikaci, jak se nativní výsledky SQL napojí (zaháknou zpět) do modelu O/R. 51

52 Složitější nativní dotazy Jména sloupců neodpovídají mapování paralelně anotovaných vlastností (properties). Proto je pro ně možné dodat mapování field-tocolumn použitím 52

DPKOM_06 Dědičnost entit a zpětná volání posluchači

DPKOM_06 Dědičnost entit a zpětná volání posluchači DPKOM_06 Dědičnost entit a zpětná volání posluchači 1 Obsah přednášky Jedna tabulka pro hierarchii tříd Tabulka pro konkrétní třídu Tabulka pro podtřídu Neentitní základní třídy Události zpětného volání

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15 Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle

Více

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků

Více

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

Object-relational mapping (JPA, Hibernate)

Object-relational mapping (JPA, Hibernate) Vysoká škola báňská - technická univerzita Ostrava 17. března 2010 Obsah 1 2 3 4 namapovat chování objektového světa do relačních struktur a naopak, tak aby spolu mohli jednoduše komunikovat většina moderních

Více

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace a Hibernate Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace v Javě novinka Javy 5 umožňují k Java kódu přidávat dodatečné informace (podobně jako JavaDoc) za předchůdce anotací je možné považovat

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální

Více

DPKOM_3. Perzistence v Javě

DPKOM_3. Perzistence v Javě DPKOM_3 Perzistence v Javě 1 Obsah přednášky Java Persistence EntityManager Entity beans a POJO objekty Řízené versus neřízené entitní beany (entity) Pakování perzistentní jednotky (Packing Persistence

Více

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4. Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk

Více

Projekty pro výuku programování v jazyce Java

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

Více

Přehled probírané látky

Přehled probírané látky OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi

Více

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním

Více

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,

Více

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:

Více

KIV/ZIS cvičení 6. Tomáš Potužák

KIV/ZIS cvičení 6. Tomáš Potužák KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP

Více

OOPR_05. Případové studie

OOPR_05. Případové studie OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára

Více

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,

Více

Java a Caché IV: Manipulace s objekty

Java a Caché IV: Manipulace s objekty 1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek 5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

Principy objektově orientovaného programování

Principy objektově orientovaného programování Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T

Více

Tabulka fotbalové ligy

Tabulka fotbalové ligy Semestrální práce na X36DB2 Michal Rezler Jan Zmátlík Tabulka fotbalové ligy a tabulka střelců 8. prosinec 2011 Obsah 1 Zadání....................................................... 3 1.1 Stručný popis.............................................

Více

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.

Více

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years SQL v14 4D Developer konference Obsah části SQL Porovnání 4D a SQL Nové příkazy SQL Upravené příkazy SQL Optimalizace SQL SQL v14 porovnání Definice dat - struktury Manipulace s daty Definice dat Vytvoření

Více

Jazyk C# (seminář 6)

Jazyk C# (seminář 6) Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí

Více

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR): Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit

Více

Jazyk S Q L základy, příkazy pro práci s daty

Jazyk S Q L základy, příkazy pro práci s daty Jazyk S Q L základy, příkazy pro práci s daty Základní pojmy jazyk množina řetězců nad abecedou gramatika popisuje syntaxi výrazů jazyka pravidla, jak vytvářet platné řetězce jazyka. dotazovací jazyk je

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP Databázové systémy, MS Access Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP Název školy: Číslo a název projektu: Číslo a název šablony klíčové aktivity:

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL) SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

Zápisování dat do databáze

Zápisování dat do databáze Zápisování dat do databáze Informační a znalostní systémy 1 2 záznamů Pro vkládání záznamů do tabulky- příkaz INSERT INSERT INTO tabulka VALUES ( výčet hodnot záznamu ) záznamů Pro vkládání záznamů do

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče. KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná

Více

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

Ukládání a vyhledávání XML dat

Ukládání a vyhledávání XML dat XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání

Více

Michal Podzimek 6. 11. 2013

Michal Podzimek 6. 11. 2013 Testování Test NG Michal Podzimek 6. 11. 2013 1 Úvod public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest()

Více

Iterator & for cyklus

Iterator & for cyklus Iterator & for cyklus for (Object o : foo) funguje pokud je foo pole nebo je foo iterovatelné jako to zařídit? implementovat interface java.lang.iterable Iterable má jednu metodu java.util.iterator iterator()

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Enterprise Java Beans 3.0

Enterprise Java Beans 3.0 Enterprise Java Beans 3.0 Lukáš Zapletal liberix.cz EJB 3.0 a JPA 1.0 JavaBean - vysvětlení pojmu Java třída s get/is a set metodami má tedy vlastnosti žádné další podmínky nejsou kladeny JavaBean je tedy

Více

Obrázek 6.14: Prohlížec nápovedy

Obrázek 6.14: Prohlížec nápovedy JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

PG 9.5 novinky ve vývoji aplikací

PG 9.5 novinky ve vývoji aplikací PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4. Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

boolean hasnext() Object next() void remove() Kolekce

boolean hasnext() Object next() void remove() Kolekce 11. Kontejnery Kontejnery Kontejnery jako základní dynamické struktury v Javě Kolekce, iterátory (Collection, Iterator) Seznamy (rozhraní List, třídy ArrayList, LinkedList) Množiny (rozhraní Set, třída

Více

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky XMW4 / IW4 Pokročilé SELECT dotazy Štefan Pataky TOP, OFFSET-FETCH Konverze datových typů Logické funkce Práce s řetězci Poddotazy a množinové dotazy SQL Windowing Agenda TOP TOP omezení počtu vrácených

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Java Výjimky Java, zimní semestr

Java Výjimky Java, zimní semestr Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní

Více

Databázové systémy I. 1. přednáška

Databázové systémy I. 1. přednáška Databázové systémy I. 1. přednáška Vyučující a cvičení St 13:00 15:50 Q09 Pavel Turčínek St 16:00 18:50 Q09 Oldřich Faldík Čt 10:00 12:50 Q09 Jan Turčínek Pá 7:00 9:50 Q08 Pavel Turčínek Pá 10:00 12:50

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

PRG036 Technologie XML

PRG036 Technologie XML PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu

Více

Programování II. Návrh programu I 2018/19

Programování II. Návrh programu I 2018/19 Programování II Návrh programu I 2018/19 Osnova přednášky Co víme? Objektový návrh programu. Příklad. Co víme? Třída Třída je popisem objektů se společnými vlastnostmi. class private:

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 6. seminář 2.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Ukládání dat Ukládání dat Jaké jsou možnosti? SharedPreferences jednoduchá data databáze SQLite relační

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL 4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená

Více

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 1. Nástroje programu MS Word a) vysvětlete pojmy šablona, styl (druhy stylů) význam a užití, b) vysvětlete pojem oddíl (druhy oddílů),

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

Technologie JavaBeans

Technologie JavaBeans Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent

Více

Kapitola 6: Omezení integrity. Omezení domény

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

Základní přehled SQL příkazů

Základní přehled SQL příkazů Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact

Více

Optimalizace dotazů a databázové transakce v Oracle

Optimalizace dotazů a databázové transakce v Oracle Optimalizace dotazů a databázové transakce v Oracle Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 22. dubna 2015 Marek Rychlý

Více

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc. Objektově orientované programování 1 XOBO1 Autor: Doc. Ing. František Huňka, CSc. 1 Seznam kapitol 1 Základní pojmy...3 1.1 Úvod do tříd a objektů...3 1.2 Vývojové prostředí...7 1.3 Jednotný modelovací

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Databázové systémy Cvičení 5.3

Databázové systémy Cvičení 5.3 Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Nové prvky v C# 3.0. David Keprt

Nové prvky v C# 3.0. David Keprt Nové prvky v C# 3.0 David Keprt revize Aleš Keprt 11.12.2006 Úvod Obsahem této prezentace je představení nových konstrukcí, které do jazyka C# přináší verze 3.0. Mezi ně patří: Klíčové slovo var Nové možnosti

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr Logické zpracování dotazu Jazyk T-SQL je deklarativní Popisujeme,

Více

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Semináˇr Java X JDBC Semináˇr Java X p.1/25 Seminář Java X JDBC Seminář Java X p.1/25 Úvod JDBC API poskytuje základní rozhraní pro unifikovaný přístup k databázím Programátor je odstíněn od specifického API databáze Jednotné rozhraní JDBC pro všechny

Více

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 Jazyk SQL 1 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT

Více

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl Šablonovací systém htmltmpl 1 Představení šablonovacích systémů Každý, kdo se zabývá tvorbou webových aplikací dříve nebo později zjistí, že je vhodné oddělovat obsah aplikace od jejího vzhledu. Pokud

Více

14.4.1. Typický prvek kolekce pro české řazení

14.4.1. Typický prvek kolekce pro české řazení 14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení

Více

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání

Více

JAVA. Další jazyky kompilovatelné do Java byte-code

JAVA. Další jazyky kompilovatelné do Java byte-code JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace

Více

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java

Více