DPKOM_06 Dědičnost entit a zpětná volání posluchači
|
|
- Bohumír Moravec
- před 9 lety
- Počet zobrazení:
Transkript
1 DPKOM_06 Dědičnost entit a zpětná volání posluchači 1
2 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í Entitní třídy zpětného volání Posluchači entit (Entity Listeners) 2
3 Způsoby O/R mapování Specifikace Java Persistence poskytuje tři různé způsoby, jak mapovat hierarchii dědičnosti do relační databáze: 1. Jedna tabulka pro hierarchii tříd Jedna tabulka bude mít všechny vlastnosti (atributy) každé třídy v hierarchii. P erson -firstn am e -lastn am e C ustom er -street -city -sta te -zip E m p loyee -em ployeeid 3
4 Způsoby O/R mapování 2. Tabulka pro konkrétní třídu Každá třída bude mít pro ni deklarovanou tabulku, se všemi jejími vlastnostmi a vlastnostmi její nadtřídy mapované do této tabulky. 3. Tabulka pro podtřídu Každá třída bude mít svoji vlastní tabulku. Každá tabulka bude mít vlastnosti, které jsou definované v té konkrétní třídě. Tyto tabulky nemají žádné vlastnosti svých nadtříd nebo podtříd. 4
5 1. Jedna tabulka pro hierarchii tříd Do jednoduché tabulky jsou mapovány všechny třídy. To znamená, že datové atributy tříd Person, Customer a Empoloyee jsou jako vlastnosti v jedné tabulce: create table PERSON_HIERARCHY ( id integer primary key not null, firtsname varchat(255), lastname varchar(255), street varchar(255), city varchar(255), state varchar(255), zip vatchar(255), employeeid integer, DISCRIMINATOR varchar(31) not null, //identif. typu uložené entity ); 5
6 1. Jedna tabulka pro hierarchii tříd Speciální sloupec DISCRIMINATOR identifikuje typ entity, který je uložen v dané tabulce. 6
7 strategy=inheritancetype DiscriminatorColumn(name name="discriminator", discriminatortype=discriminatortype DiscriminatorValue("PERSON") public class Person implements java.io io.serializable { private int id; private String firstname; private String lastname; Poznámky Anotace pro @ public int getid() { return id; } public void setid(int id) { this.id = id; } public String getfirstname() { return firstname; } public void setfirstname(string first) { this.firstname = first; } } public String getlastname() { return lastname; } public void setlastname(string last) { this.lastname = last; }
8 1. Jedna tabulka pro hierarchii tříd Pro definování perzistentní strategie pro relaci dědičnosti se používá Inheritance { } InheritanceType strategy() default SINGLE_TABLE; public enum InteritanceType { } SINGLE_TABLE, JOINED, TABLE_PER_CLASS 8
9 1. Jedna tabulka pro hierarchii tříd Atribut strategy() definuje použité mapování instance. musí být umístěna v kořenu hierarchie třídy, pokud neměníte strategii mapování v podtřídě. DiscriminationColumn String name() deafult DTYPE ; DiscriminationType discriminationtype() default STRING; String columndefinition() default ; int length() default 10; } 9
10 1. Jedna tabulka pro hierarchii tříd Sloupec Discriminator určuje instance, které třídy tabulka reprezentuje. Atribut name() určuje jméno sloupce a dicsriminatortype() specifikuje typ diskriminačního sloupce. Typem může být STRING, CHAR nebo INTEGER. Implicitní je STRING. DiscriminatorValue { String value(); } 10
11 1. Jedna tabulka pro hierarchii tříd definuje, jakou hodnotu bude mít diskriminační sloupec pro řádek, ve kterém je uložena instance třídy Person. Pokud zůstane atribut nedefinovaný, správce perzistence vygeneruje hodnotu automaticky. 11
12 DiscriminatorValue("CUST") public class Customer extends Person { private String street; private String city; private String state; private String zip; public String getstreet() { return street; } public void setstreet(string String street) { this.street street = street; }... } Poznámky Jedinými metadaty specifikujícími dědičnost je hodnota diskriminátoru, pokud chcete jinou než defóltní hodnotu. // použit ití defóltn ltní hodnoty public class Employee extends Customer { private int employeeid; } public int getemployeeid() { return employeeid; } public void setemployeeid(int id) { employeeid = id; }
13 1. Jedna tabulka pro hierarchii tříd V uvedeném příkladu entita Customer nastavuje hodnotu sloupce diskriminátor na CUST s využitím U entity Employee je hodnota sloupce diskriminátor nastavena defóltně na Employee. 13
14 Výhody Mapování SINGLE_TABLE je nejjednodušší na implementaci a provádění. Pracuje se pouze s jednou tabulkou. Správce perzistence nemusí provádět žádné složité spojování sjednocení nebo výběry, když nahrává entity, nebo když traverzuje polymorfické relace, protože všechna data jsou uložena v jedné tabulce. 14
15 Nevýhody Jedna velká nevýhoda tohoto přístupu je, že všechny sloupce vlastností podtříd musí být nastavitelné na null. Pokud potřebujete nějakou vlastnost nastavit na NOT NULL je to problém, protože to nejde. Protože sloupce vlastností podtříd nemusí být využity, není uvedená strategie normalizovatelná. 15
16 create table Person ( id integer primary key not null, firstname varchar(255), lastname varchar(255) ); create table Customer ( id integer primary key not null, firstname varchar(255), lastname varchar(255) street varchar(255), city varchar(255), state varchar(255), zip varchar(255) ); Poznámky 2. Tabulka pro konkrétní třídu Každá tabulka má své vlastnosti a všechny vlastnosti svých nadtříd. create table Employee ( id integer primary key not null, firstname varchar(255), lastname varchar(255) street varchar(255), city varchar(255), state varchar(255), zip varchar(255) employeeid integer );
17 2. Tabulka pro konkrétní třídu Jedna hlavní odlišnost mezi danou strategií a strategií SINGLE_TABLE je, že není potřebný žádný sloupec diskriminátor v databázovém schématu. 17
18 strategy=inheritancetype InheritanceType.TABLE_PER_CLASS) public class Person implements java.io io.serializable {... public class Customer extends Person {... } Poznámky Mapování této strategie s využitím public class Employee extends Customer {... } Metadata jsou uvedena pouze ve třídě t Person.
19 Výhody Výhoda tohoto přístupu oproti SINGLE_TABLE je v tom, že je možné definovat omezení (NOT NULL) na vlastnostech (atributech) podtříd. 19
20 Nevýhody Tato strategie není normalizovaná, protože má nadbytečné (redundantní) sloupce. Tato strategie může být implementovaná tak, že kontejner používá vícenásobné dotazy při nahrávání entit nebo polymorfických relací. To je pro kontejner hodně náročné. Jiný způsob implementace je, že kontejner používá SQL UNION operace. Je to rychlejší než předchozí implementace vícenásobných výběrů. 20
21 Nevýhody Problémem tohoto způsobu implementace může dále být, že některé databáze nepodporují uvedený rys SQL. 21
22 3. Tabulka pro podtřídu V této strategii mapování má každá podtřída svoji vlastní tabulku, ale tato tabulka obsahuje pouze vlastnosti, které jsou definované v konkrétní třídě. Stručněřečeno, tato strategie je podobná strategii TABLE_PER_CLASS s výjimkou toho, že schéma je normalizované. Také někdy nese označení JOINED strategie: 22
23 create table Person ( id integer primary key not null, first name varchar(255), lastname varchar(255) ); Poznámky create table Customer ( id integer primary key not null, street varchar(255), city varchar(255), state varchar(255), zip varchar(255) ); create table Employee ( EMP_PK integer primary key not null, employeeid integer );
24 3. Tabulka pro podtřídu Když správce perzistence nahrává entitu (load), která je podtřídou, nebo traverzuje polymorfické relace, používá SQL join operaci na všechny tabulky hierarchie. Při mapování musí být v každé tabulce sloupec, který se využívá při spojování každé tabulky. V našem příkladě tabulky EMPLOYEE, CUSTOMER a PERSON sdílí hodnotu stejného primárního klíče. 24
25 Inheritance(strategy=InheritanceType.JOINED InheritanceType.JOINED) public class Person implements java.io.serializable DiscriminatorValue("CUST") ") public class Customer extends Person {... } Poznámky Anotace PrimaryKeyJoinColumn(name="EMP_PK") public class Employee extends Customer {... }
26 3. Tabulka pro podtřídu Správce perzistence potřebuje vědět, který sloupec v každé tabulce bude použit pro spojování, při nahrávání entity. K tomu se používá package METHOD< FIELD}) PrimaryKeyJoinColumn } String name() default ; String referencedcolumnname() default ; String columndefinition() default ; 26
27 3. Tabulka pro podtřídu Atribut name() odkazuje na sloupec, kterým budete provádět operaci join. Je obsažen v dané tabulce. Defóltně odkazuje na primární klíč nadtřídy. Sloupec referencedcolumnname() bude použit k provádění operace join z tabulky nadtřídy. Může to být libovolný sloupec tabulky nadtřídy, standardně je to primární klíč. Jsou-li jména primárních klíčů mezi danou třídou a podtřídou identická, pak není třeba specifikovat anotaci (Customer, Person). 27
28 3. Tabulka pro podtřídu Pro složený klíč se využije package METHOD, FIELD}) PrimaryKeyJoinColumns values(); } 28
29 Výhody Není tak rychlé jako strategie SIMPLE_TABLE, je ale možné definovat omezení NOT NULL a model je normalizovatelný. Tato strategie je lepší než strategie TABLE_PER_CLASS ze dvou důvodů: 1. Model relační databáze se dá kompletně normalizovat. 2. Pracuje lépe, pokud databáze nepodporuje SQL UNIONS operace. 29
30 Nevýhody Nepracuje tak rychle jako strategie SINGLE_TABLE. 30
31 Neentitní základní třída Někdy potřebujete zdědit z neentitní nadtřídy. Tato nadtřída může být existující třída ve vašem doménovém modelu, ze které nechcete vytvářet entitu. dovoluje definovat tento typ mapování: 31
32 @MappedSuperclass public class Person implements java.io @ public int getid() { return id; } public void setid(int id) { this.id = id; } Poznámky public String getfirstname() { return firstname; } public void setfirstname(string first) { this.firstname = first; } public String getlastname() { return lastname; } public void setlastname(string last) { this.lastname = last; Table(name= CUSTOMER CUSTOMER Inheritance(strategy=InheritanceType.JOINED AttributeOverride(name= lastname lastname, column=@column(name Column(name= SURNAME SURNAME )) public class Customer extends Person Table(name= EMPLOYEE EMPLOYEE PrimaryKeyJoinColumn(name="EMP_PK") public class Employee extends Customer {... }
33 Neentitní základní třída Protože to není entita, mapovaná nadtřída nemá asociovanou tabulku. Každá podtřída zdědí perzistentní vlastnosti nadtřídy (base class). Jakékoli mapované vlastností mapované třídy lze zastínit (override) použitím Následuje databázové schéma modifikované hierarchie: 33
34 create table CUSTOMER ( id integer primary key not null, firstname varchar(255), SURNAME varchar(255), street varchar(255), city varchar(255), state varchar(255), zip varchar(255), ); Poznámky create table EMPLOYEE ( EMP_PK integer primary key not null, employeeid integer );
35 Neentitní základní třída Entita Customer zdědila vlastnosti: id, firstname a lastname. Protože bylo sloupec pro lastname bude SURNAME. Tato mapovací strategie je užitečná, když chcete mít nadtřídu pro entitu a nechcete ji donutit, aby byla sama entitou. 35
36 Zpětná volání entity a posluchači Entity Callbacks and Listeners Když EntityManager vykonává metody jako např. persist(), merge(), find() a remove(), nebo libovolný dotaz EJB QL, je spuštěna předdefinovaná množina událostí životního cyklu. Např. metoda persist() spouští databázový inserts, metoda merge() spouští updaty v databázi apod. Někdy je velmi užitečné, aby třída entitního beanu byla informovaná o tom, že nastaly uvedené události (spustily se dodatečné metody). 36
37 Zpětná volání entity a posluchači Entity Callbacks and Listeners Specifikace Javy Persistence dovoluje vytvořit metody zpětného volání (callback methods) ve třídě beanu tak, aby entitní instance byly informovány, že tyto události nastaly. Je možné také registrovat odděleného posluchače, který bude očekávat ty stejné události. 37
38 Události zpětného volání Callback Events Daná anotace reprezentuje každou fázi životního @javax.persistence.postupdate nastane ihned, když entitymanager vyvolá metodu persist(), nebo kdykoli entitní instance je naplánovaná na vložení do databáze (jako kaskádní merge). 38
39 Události zpětného volání Callback Events Podobně není spuštěna, dokud není dokončeno vložení do databáze. 39
40 Zpětné volání v entitních třídách (Callback on Entity Classes) Instance entitního beanu může být registrovaná pro metodu zpětného volání anotací třídy beanu pomocí metody bez argumentů, která vrací void a vyhazuje nekontrolovanou výjimku. public class Cabin void afterinsert() {... void afterloading() {... } Nastane-li odpovídající událost, entity manager vyvolá odpovídající anotovanou metodu. 40
41 Posluchači entity Entity Listeners Posluchači entit jsou třídy, které mohou genericky zachytit události zpětného volání. Nejsou to entitní třídy jako takové, ale mohou být připojeny ke třídě entit prostřednictvím vazby anotace nebo XML. Ve třídě entitního posluchače můžete označit metody, které zachytí konkrétní událost životního cyklu. Tyto metody vrací void a mají jeden Object jako parametr, což je instance entity, na které nastane událost. 41
42 public class TitanAuditLogger void postinsert(object entity) { System.out out.println println( Inserted entity: + entity.getclass getclass(). ().getname getname()); } Poznámky void postload(object entity) { System.out out.println println( Loaded entity: + entity.getclass getclass(). ().getname getname()); }
43 Posluchači entity Entity Listeners Třída posluchače entity musí mít veřejný konstruktor bez argumentů. Ten může být aplikován na entitní třídu s využitím EntityListeners { Class[ ] value(); } 43
44 Posluchači entity Entity Listeners V entitní třídě je možné specifikovat jeden nebo EntityJmxNotifier.class}) public class Cabin void afterinsert() {... void afterloading() {... } } Použitím na entitu Cabin způsobí že, jakákoli metoda zpětného volání uvnitř entitních posluchačů bude vyvolána, kdykoli instance entity Cabin bude v interakci s perzistentním kontextem. 44
45 Poznámky Anotace zabezpečí vyvolání metod zpětného volání kdykoli instance třídy Cabin bude v interakci s perzistentním kontextem. Tvar XML: <entity <entity <entity <entity class class class class=" =" =" ="com com com com.titan..titan..titan..titan.domain domain domain domain.cabin Cabin Cabin Cabin"> "> "> "> <entity <entity <entity <entity-listeners listeners listeners listeners> <entity <entity <entity <entity-listener listener listener listener class class class class=" =" =" ="com com com com.titan..titan..titan..titan.listeners listeners listeners listeners.titanauditlogger TitanAuditLogger TitanAuditLogger TitanAuditLogger"> "> "> "> </entity </entity </entity </entity-listener listener listener listener>" >" >" >" <entity <entity <entity <entity-listener listener listener listener class class class class=" =" =" ="com com com com.titan..titan..titan..titan.listeners listeners listeners listeners.entityjmxnotifier EntityJmxNotifier EntityJmxNotifier EntityJmxNotifier"> "> "> "> <pre pre pre pre-persist persist persist persist name name name name=" =" =" ="beforeinsert beforeinsert beforeinsert beforeinsert"/> "/> "/> "/> <post <post <post <post-load load load load name name name name=" =" =" ="afterloading afterloading afterloading afterloading"/> "/> "/> "/> </entity </entity </entity </entity-listener listener listener listener> </entity </entity </entity </entity-listeners listeners listeners listeners> </entity> </entity> </entity> </entity>
46 1 EntityManager em = factory.createentitymanager createentitymanager(); 2 em.gettransaction gettransaction(). ().begin begin(); 3 4 Cabin cabin = new Cabin(); 5 em.persist persist(cabin cabin); 6 7 Cabin anothercabin = em.find find(cabin Cabin.class class, 5); 8 9 em.gettransaction gettransaction(). ().commit commit(); Poznámky Pořadí vykonávání entitních posluchačů je pořadí, ve kterém byly v nebo v XML mapovacím souboru. Třída EntityJmxNotifier se zajímá o metodu zpětn tného volání <pre pre-persist ersist>. Proto je metoda EntityJmxNotifier.beforeInsert beforeinsert() vykonána na hned při vyvolání metody em.persist persist(cabin cabin) v řádku 5. V řádku 7 jsou vyvolány metody v následuj sledujícím pořad adí: TitanAuditLogger.postLoad postload() EntityJmxNotifier.afterLoading afterloading() Cabin.afterLoading afterloading() po té co je vykonána na metoda EntityManager.find find(). Správce perzistence zdrží vkládání entity cabin dokud není transakce ukončena (commit commit).
47 Defóltní entitní posluchači Je možné specifikovat množinu defóltních entitních posluchačů, kteří jsou aplikováni na každou entitní třídu v perzistentní jednotce s využitím elementu <entity-listeners>. Např. aplikace TitanAuditLogger v každé entitní třídě vyžaduje uvést v konkrétní perzistentní jednotce následující: 47
48 Poznámky <entity <entity <entity <entity-mappings mappings mappings mappings> <entity <entity <entity <entity-listeners listeners listeners listeners> <entity <entity <entity <entity-listener listener listener listener class class class class=" =" =" ="com com com com.titan..titan..titan..titan.listeners listeners listeners listeners.titanauditlogger TitanAuditLogger TitanAuditLogger TitanAuditLogger"> "> "> "> <post <post <post <post-persist persist persist persist name name name name=" =" =" ="afterinsert afterinsert afterinsert afterinsert"/> "/> "/> "/> <post <post <post <post-load load load load name name name name=" =" =" ="afterloading afterloading afterloading afterloading"/> "/> "/> "/> </entity </entity </entity </entity-listener listener listener listener> <entity <entity <entity <entity-listener listener listener listener class class class class=" =" =" ="com com com com.titan..titan..titan..titan.listenersentityjmxnotifier listenersentityjmxnotifier listenersentityjmxnotifier listenersentityjmxnotifier"/> "/> "/> "/> </entity </entity </entity </entity-listeners listeners listeners listeners> </entity </entity </entity </entity-mappings mappings mappings mappings>
49 Defóltní entitní posluchači Pokud potřebujete vypnout defóltní entitní posluchače na konkrétní entitě, použijete k @ExcludeDefaultListeners public class Cabin {... } 49
50 Posluchači a dědičnost Pokud máte hierarchii dědičnosti entit, ve které má základní třída (nadtřída) aplikované entitní posluchače, každá podtřída může zdědit tyto entitní posluchače. Pokud má podtřída aplikované své entitní posluchače, potom budou připojeni jak posluchači základní (bázové) třídy, tak i posluchači podtřídy. 50
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
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
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
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
DPKOM_7 Dotazy a EJB QL
DPKOM_7 Dotazy a EJB QL 1 Obsah přednášky API dotazů (Query API) EJB QL Nativní dotazy pojmenované dotazy (Named Queries) 2 API dotazů EJB QL je deklarativní dotazovací jazyk, podobný SQL pro relační databáze,
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
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
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
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
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
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
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,
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,
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
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í
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
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ý
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.............................................
Zadání úlohy do projektu z předmětu IPP 2013/2014
Zadání úlohy do projektu z předmětu IPP 2013/2014 Zbyněk Křivka a Dušan Kolář E-mail: {krivka, kolar}@fit.vutbr.cz, {54 114 1313, 54 114 1238} XTD: XML2DDL Zodpovědný cvičící: Ondřej Navrátil(inavra@fit.vutbr.cz)
Návrh softwarových systém. Návrh softwarových systémů
Návrh softwarových systém ů - Java 8 Jiří Šebek Návrh softwarových systémů (B6B36NSS) Co je nového? Default interface methods Lambda expressions Method references and repeatable annotations Streams Functional
Databáze v Java aplikacích, JPA Handout
Databáze v Java aplikacích, JPA Handout Martin Ledvinka martin.ledvinka@fel.cvut.cz 11. listopadu 2015 1 Přístup k databázím v Javě Jednou z mnoha výhod (a občas nevýhodou) platformy Java je její zaměření
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
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
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
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
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
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,
Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem
Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem 1 Ondřej Berger, Pavel Janečka, 2 Lukáš Černovský 1 Univerzita Hradec Králové Fakulta informatiky a managementu KIKM Hradecká 1249/6,
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í
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Reflexe RTTI Runtime Type Identification
Vaše jistota na trhu IT Reflexe RTTI Runtime Type Identification Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vaše jistota na trhu IT Opakování Shrnutí či téma Co je to reflexe/rtti Termínem Reflexe označujeme
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()
Distribuované programování s prvky komponent XDPKO. Doc. Ing. František Huňka, CSc.
Distribuované programování s prvky komponent XDPKO Doc. Ing. František Huňka, CSc. 1 Obsah 1 Distribuované systémy základní architektura...3 1.1 Distribuované systémy...3 1.2 Java EE, Enterprise JavaBeans
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005 2008 Michal Krátký Tvorba informačních systémů 1/39 Konceptuální
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
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
11. Dědičnost. Dědičnost strana 103
Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek
Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))
Vzorové příklady SQL Tabulka: Kniha CREATE TABLE kniha název VARCHAR(50, PRIMARY KEY (id Tabulka: Autoři CREATE TABLE autoři jméno VARCHAR(10, příjmení VARCHAR(20, titul VARCHAR(7, prostřední VARCHAR(10,
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/46 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/46 Úvod
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í
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby
DPKOM_2 Technologie Enterprise JavaBeans Řízení zdrojů a primární služby 1 Obsah přednášky Technologie Enterprise JavaBeans Distribuované zpracování základ EJB EJB služby middleware Řízení zdrojů Primární
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
Ú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
OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
OSGi Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35 Konceptuální
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ů
X-komponenty 3.1. Uživatelská příručka. J. Kocman, V. Trojan
X-komponenty 3.1 Uživatelská příručka Napsal: J. Kocman, V. Trojan Verze: 3.1 Ze dne: 01.11.2017 Chyba! Nenalezen zdroj odkazů. Chyba! Nenalezen zdroj o dkazů. Soupis změn Výchozí verze i Chyba! Nenalezen
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
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
Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B
PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část
Databáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B
PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Registrační číslo Hodnocení -
Vkládání, aktualizace, mazání
Kapitola 4 Vkládání, aktualizace, mazání Tématem několika předchozích kapitol byly základní techniky pokládání dotazů, které se všechny zaměřovaly na zisk dat z databáze. V kapitole čtvrté půjde o něco
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
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ů
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)
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
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()
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
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í
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
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é
Objektově orientované programování
Objektově orientované programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 7: Objektově
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í
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
Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/40 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/40 Úvod
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
Generické typy. Podrobněji: The Java Language Specification ( Third Edition ) , 18
Generické typy jsou třídy či interfejsy deklarující tzv. typové parametry jimiž: - systematizují typovou kontrolu kompilátorem, - vyjadřují jasněji smysl, zlepšují čitelnost a robustnost programu, - ulehčují
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ů
Testovací metoda. Testovací metoda. public class SimpleTest {
Testování TestNG public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest() { System.out.println("Fast test");
Obsah přednášky. dědičnost modifikátory (specifikátory) přístupu
OOPR_08 1 Obsah přednášky dědičnost modifikátory (specifikátory) přístupu private, public, protected konstruktor v dědičnosti deklarace nových objektů rozšiřování & přepisování (zastiňování) metod pravidla
JAVA. Reflection API
JAVA Reflection API 1 Přehled Reflection Mění strukturu/stav objektů Introspection Zkoumá strukturu objektů obdoba RTTI v C++ ale mnohem silnější umožňuje zjišťování informací o třídách, atributech, metodách
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
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í
Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
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é
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
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
Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)
Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Michal Papež Spring & EJB Program: K čemu je to dobré, historie, odlišnosti Spring 2.5 EJB 3.0 K čemu jsou? 1 Vývoj velkých podnikových
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ů
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ýč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
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
Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.
1. Je spušťen následující anonymní PL/SQL blok: BEGIN INSERT INTO countries (id, name) VALUES ('XA', 'Xanadu'); INSERT INTO countries (id, name) VALUES ('NV','Neverland'); COMMIT; COMMIT; ROLLBACK; END;
MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY
MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY Evidence filmových nahrávek Bakalářská práce Richard Karmazín 2005 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
Základy Guice Vazby Scopes. Google Guice. základní seznámení s frameworkem Google Guice
základní seznámení s frameworkem Lukáš Koĺısko lkolisko@gmail.com 26.11.2007 Cíle prezentace Cíle prezentace To DI, or not to DI Varianty řešení DI Výhody a nevýhody Cílem prezentace je ukázat, že... v
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
NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz
NA CO SI DÁT POZOR V JAVASCRIPTU? Milan Lempera @milanlempera Víťa Plšek @winsik Angular.cz STRICT MODE volitelně aktivovatelná omezenější varianta JS 'use strict'; a = 11; // strict mode pro celý soubor
GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.
GWT pro pokročilé MoroSystems, s.r.o. Pavel Klobása Senior Java Developer pavel.klobasa@morosystems.cz Obsah Co je to GWT? Návrhové vzory a užitečné knihovny Komunikace klient - server ExtGWT GWT+Spring
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Návrhové vzory Design Patterns
Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu
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
Návrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
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,