PA165: Persistence Layer. Petr Adámek
|
|
- Roman Matoušek
- před 5 lety
- Počet zobrazení:
Transkript
1 PA165: Persistence Layer Petr Adámek
2 Content: Persistence I. Introduction to data persistence Where to store data How to work with data (Persistence technologies in Java EE) Architecture of data persistence layer Introduction to ORM What is ORM Basic Principles JPA Introduction Entities in JPA JPA Components Entity Lifecycle PA165: Data Persistence I 2
3 Content: Persistence II JPA Advanced Mapping Querying JPQL Criteria API Alternatives EJB 2.x JDO JDBC Embedded SQL Spring JDBC ibatis Best practices PA165: Data Persistence I 3
4 INTRODUCTION INTO DATA PERSISTENCE LAYER PA165: Data Persistence I 4
5 Where to store data Data can be stored on different places Relational Database (RDBMS) Object Database XML Database DMS (Document Management System) CMS (Content Management System) Post-relational database (Caché) Temporary Hiearchicke Prostorove No-SQL Database Another Information System (CRM, ERP, etc.) PA165: Data Persistence I 5
6 Relational Databases The most frequent data storage for enterprise applications Relational data model is simple but very powerful Suitable and sufficient for most of common applications Good theoretical model (Relational Algebra, Relational Calculus) Simplicity => High Performance (eg. due simple optimizations) Proven and well established technology (40 years of development, tools, standards, reliability, high penetration, lots of experts, etc.) Data are separated from application and can be easily shared between different applications Independent on concrete platform or programming language PA165: Data Persistence I 6
7 Persistence Technologies With Object Model (ORM or other model conversion) Legacy EJB 2.x Hibernate JPA JDO With Relational Model JDBC Commons DB Utils Spring JDBC ibatis Embedded SQL PA165: Data Persistence I 7
8 Architecture of persistence layer Presentation Tier DTO Application Logic Entity Persistence/DAO Tier JDBC / SQL DB PA165: Data Persistence I 8
9 Architecture of persistence layer DAO (Data Access Object) design pattern Separation persistence and data access from business logic Allows to modify persistence implementation or replace persistence technology at all without affecting application logic. PA165: Data Persistence I 9
10 Transaction management Transaction are not controlled on DAO level Why? Single transaction can contain more operations provided by different DAO components Transaction management should be independent on persistent technology Transaction management will be discussed later in lecture focused on Service Layer PA165: Data Persistence I 10
11 INTRODUCTION TO ORM PA165: Data Persistence I 12
12 What is ORM Object-relational mapping (ORM) Technique for automatic conversion between object model and relational data model You work with objects, but they are stored in a traditional relational database. INSERT INTO people (id, name) VALUES (1, "Pepa"); Person p = new Person(1, "Pepa"); em.persist(p); em.gettransaction().commit(); UPDATE people SET name = "Honza" WHERE id = 2; Person p = em.find(person.class,2); p.setname("honza"); em.gettransaction().commit(); PA165: Data Persistence I 13
13 Why ORM As we already discussed, the most frequent storage is RDBMS But we usually want to work with Object Model Why Object Model? It is natural for object oriented programming language Working with Object Data Model is straightforward, friendly and easy See example PA165: Data Persistence I 14
14 Why ORM: JDBC example public String getpersonname(long personid) throws SQLException { PreparedStatement st = null; try { st = connection.preparestatement( "SELECT name FROM people WHERE id =?"); st.setlong(1, personid); ResultSet rs = st.executequery(); if (rs.next()) { String result = rs.getstring("name"); assert!rs.next(); return result; } else { return null; } } finally { if (st!= null) { st.close(); } } } PA165: Data Persistence I 15
15 Why ORM: JPA Example public String getpersonname(long personid) { Person p = em.find(person.class,personid); return p.getname(); } PA165: Data Persistence I 16
16 ORM: What We Get and Lost ORM Benefits Possibility to work with natural object model Portability between different RDBMS with different SQL Dialect Type checking at compile phase No runtime error in SQL statements Simplifies testing Simpler and clearer code More effective development (auto complete, access to JavaDoc, etc.) ORM drawbacks Less performance in some cases (ORM has some overhead). No access to advantages of relational model and features of RDBMS (e.g. storage procedures) PA165: Data Persistence I 17
17 Basic terms Pojmy, které byste měli znát JDBC, SQL, Transakce, Pojmy, které si definujeme Entita doménový objekt, který reprezentuje data ukládaná do databáze (např. osoba, faktura, předmět). DTO (Data Transfer Object) objekt, který slouží pro zapouzdření dat a jejich transport mezi komponentami. POJO (Plain Old Java Object) jednoduchá třída, na kterou nejsou kladeny žádné zvláštní požadavky. Nemusí implementovat žádné rozhraní, nemusí rozšiřovat žádnou jinou třídu, ani není závislá na žádné jiné třídě, balíku nebo frameworku. Jediné podmínky, které na ni mohou být kladeny, je přítomnost bezparametrického konstruktoru, a dodržení konvencí pro pojmenování get/set metod. PA165: Data Persistence I 18
18 Standards and Approaches Entity EJB (EJB 2.1/JSR 153; J2EE 1.4) Vyžaduje aplikační server s EJB kontejnerem. Entita je heavyweight komponenta, jejíž instance se nachází v EJB kontejneru a přístup k ní probíhá prostřednictvím vzdáleného volání metod. Problém s latencemi (řeší se pomocí DTO, příp. DAO). CMP a BMP Od verze EJB 3.0 (JSR 220) je preferováno JPA. JDO (JDO 3.0/JSR 243) Obecný standard pro perzistenci v Javě. Není omezeno na relační databáze, objekty mohou být ukládány do úložiště libovolného typu JPA (JPA 2.0/JSR 317; Java EE 6) Java EE standard pro ORM inspirovaný Hibernate. Entita je lightweight POJO, který může být libovolně předáván mezi komponentami, lokálně i vzdáleně. PA165: Data Persistence I 19
19 EJB 2.x Entity public abstract class PersonBean implements EntityBean { private EntityContext context; public abstract Long getid(); public abstract void setid(long id); public abstract String getname(); public abstract void setname(string name); public Long ejbcreate (Long id, String name) throws CreateException { setid(id); setname(name); return id; } public void ejbpostcreate (Long id, String name) throws CreateException {} public void setentitycontext(entitycontext ctx) { context = ctx; } public void unsetentitycontext() { context = null; } public void ejbremove() {} public void ejbload() {} public void ejbstore() {} public void ejbpassivate() {} public void ejbactivate() {} } public PersonDTO getpersondto() { return new PersonDTO(getId(),getName()); } PA165: Data Persistence I 20
20 POJO Entity public class Person { private Long id; private String name; public Long getid() { return id; } public void setid(long id) { this.id = id; } public String getname() { return name; } public void setname(string name) { this.name = name; } public boolean equals(object o) { if (this == o) { return true; } if (getid() == null) { return false; } if (o instanceof Person) { return getid().equals(((person) o).getid()); } else { return false; } } } public int hashcode() { return id==null?0:id.hashcode(); } PA165: Data Persistence I 21
21 Mapping Definition Prostřednictvím anotací Definice objektového modelu i jeho mapování je na jednom místě. Větší přehlednost, jednodušší vývoj, snazší údržba. Prostřednictvím externího souboru (obvykle XML) nezávislost kódu entit na konkrétní technologii zajišťující ORM; možnost měnit mapování bez nutnosti modifikovat kód. Pomocí speciálních JavaDoc komentářů Z doby, kdy Java nepodporovala anotace. Viz XDoclet. PA165: Data Persistence I 22
22 Generování schématu databáze na základě definice mapování Máme vytvořené entity a definici mapování a chceme si ušetřit práci s vytvářením schématu databáze. Je možné automaticky vytvářet tabulky při prvním spuštění aplikace. Výhodné zejména při vývoji, kdy dochází ke změnám datového modelu. Vhodné, pokud je datový model zcela pod kontrolou naší aplikace. Problém, pokud se mění datový model a již máme v databázi existující data. Generování entit a definice mapování na základě schématu databáze Máme vytvořené schéma databáze a chceme si ušetřit práci s vytvářením entit a definicí mapování (např. vyvíjíme aplikaci pro přístup k již existujícím datům). Obvykle je nutné vygenerované soubory ručně opravit. PA165: Data Persistence I 23
23 JAVA PERSISTENCE API PA165: Data Persistence I 24
24 JPA Introduction Java Persistence API POJO Entity, inspirované ORM nástrojem Hibernate Jedná se o rozhraní, které implementují různé ORM nástroje od různých dodavatelů. Obsahuje základní funkce, jednotlivé implementace mohou prostřednictvím svého proprietárního rozhraní poskytovat řadu dalších služeb a možností. Verze a specifikace JPA 1.0 součást Java EE 5; vzniklo jako součást EJB 3.0 (JSR 220), lze jej ale použít zcela nezávisle. JPA 2.0 součást Java EE 6; JSR 317. ORM nástroje implementující JPA Hibernate TopLink, TopLink Essentials Eclipse Link (JPA 2.0) Open JPA PA165: Data Persistence I 25
25 Entity in JPA Entity Reprezentují jednotlivé doménové objekty. Jsou klasické POJO, tj. jednduché a obyčejné objekty. Entita má atributy, které reprezentují vlastnosti doménového objektu. Atributy jsou přístupné pomocí get/set metod. Entita musí mít bezparamentrický konstruktor a pokud má být používána k přenosu dat prostřednictvím RMI, musí být serializovatelná. Definice mapování Způsob uložení entity do relační databáze je definován pomocí anotací, nebo pomocí XML souboru. Důsledně se uplatňuje princip convention-over-configuration. PA165: Data Persistence I 26
26 JPA public class = GenerationType.AUTO) private Long id; private String name; public Long getid() { return id; } public void setid(long id) { this.id = id; } public String getname() { return name; } public void setname(string name) { this.name = name; } public boolean equals(object o) { if (this == o) { return true; } if (getid() == null) { return false; } if (o instanceof Person) { return getid().equals(((person) o).getid()); } else { return false; } } } public int hashcode() { return id==null?0:id.hashcode(); } PA165: Data Persistence I 27
27 Example Working With Entity PA165: Data Persistence I 28
28 Configuration Konfigurace Uložena v souboru persistence.xml Může obsahovat více tzv. Persistence Unit. Persistence Unit Seznam tříd, které daná PU spravuje Konfigurace připojení k databázi JNDI název DataSource JDBC url, jméno, heslo Způsob řízení transakcí Způsob generování tabulek při spuštění aplikace Konfigurační parametry U JPA 1.0 nejsou názvy konfiguračních parametrů standardizovány, u JPA 2.0 již ano. Parametry mohou být nastaveny také při vytváření instancí EntityManagerFactory a EntityManager PA165: Data Persistence I 29
29 JPA Architecture Instance entity Instance A entity Instance B entity C Správa instancí entit Třída entity Třída A entity Třída B entity C Konfigurace, definice mapování Transakce PersistenceContext 0..n 1 PersistenceUnit Spravuje 1 1..n Konfiguruje 1 1 EntityManager 0..n 1 EntityManagerFactory Umožňuje provádět operace s entitami PA165: Data Persistence I 30 Načítá konfiguraci PU Vytváří EntityManager
30 Entity Lifecycle Does not exist Serializace a deserializace Ukončení platnosti persistence contextu Klonování nebo kopie New Entity e = new Entity(); em.persist(e); Opuštění persistence contextu em.remove(e) Detached Managed Deleted em.merge(e) Všechny změny entity jsou při commitu transakce automaticky uloženy do DB em.persist(e); em.refresh(e); PA165: Data Persistence I 31
31 Quiz Entity Lifecycle PA165: Data Persistence I 32
32 RELATIONSHIPS AND ADVANCED MAPPING PA165: Data Persistence I 34
33 Example Relationships OneToOne OneToMany ManyToOne ManyToMany Uniderctional Bidirectional Cascade Operations PA165: Data Persistence I 35
34 QUERYING PA165: Data Persistence I 36
35 Querying JPQL Query language similar to SQL Supports scalar values, tuples, entities or constructed objects Criteria API From JPA 2.0 Allows to build query programatically PA165: Data Persistence I 37
36 Example JPQL Executing simple query Named queries Returning scalar values Returning tuples Constructing objects Criteria API Simple example PA165: Data Persistence I 38
37 OTHER TECHNOLOGIES PA165: Data Persistence I 39
38 EJB 2.x Incompatible with DAO Design Pattern Actually, DAO Pattern was designed as replacement for EJB 2.x Entities Requires Java EE Application server with EJB Container Entity is heavyweight component, instances are located in EJB Container and accessed remotely Problem with latencies (reason for introducing DAO and DTO design patterns) CMP versus BMP JPA is preferred from EJB 3.0 PA165: Data Persistence I 40
39 EJB 2.x Entity public abstract class PersonBean implements EntityBean { private EntityContext context; public abstract Long getid(); public abstract void setid(long id); public abstract String getname(); public abstract void setname(string name); public Long ejbcreate (Long id, String name) throws CreateException { setid(id); setname(name); return id; } public void ejbpostcreate (Long id, String name) throws CreateException {} public void setentitycontext(entitycontext ctx) { context = ctx; } public void unsetentitycontext() { context = null; } public void ejbremove() {} public void ejbload() {} public void ejbstore() {} public void ejbpassivate() {} public void ejbactivate() {} } public PersonDTO getpersondto() { return new PersonDTO(getId(),getName()); } PA165: Data Persistence I 41
40 Embedded SQL SQL written directly in the code Code is processed with special preprocessor before compiling Preprocessor process SQL expressions, checks their validity, performs type checking a translates them into expression of used programming language. Preprocessor requires database connection public String getpersonname(long personid) { String name; #sql { SELECT name INTO :name FROM people WHERE id = :personid }; return name; } PA165: Data Persistence I 42
41 Spring JDBC Spring library implementing Template Method design pattern Cleaner code, faster development, easier maintenance Unlike ORM or Embedded SQL does not solve the problem with errors in SQL expressions, that become apparent until runtime JdbcTemplate jdbctemplate = new JdbcTemplate(dataSource); public String getpersonname(long personid) { return jdbctemplate.queryforobject( "SELECT name FROM people WHERE id =?", String.class,personId); } PA165: Data Persistence I 43
42 Apache Commons DBUtils Another library implementing Template Method design pattern. QueryRunner queryrunner = new QueryRunner(dataSource); ResultSetHandler<String> stringhandler = new ScalarHandler<String>(); public String getpersonname(long personid) { return queryrunner.query( "SELECT name FROM people WHERE id =?", stringhandler,personid); } PA165: Data Persistence I 44
43 ibatis/mybatis Originally Apache project, retired, currently developed as MyBatis SQL Queries are separated from code In XML file In annotations (in new versions) More powerful that simple libraries like Spring JDBC, more lightweight than ORM PA165: Data Persistence I 45
44 Questions? PA165: Data Persistence I 46
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
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
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
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových
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
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
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
PA165: Úvod do Java EE. Petr Adámek
PA165: Úvod do Java EE Petr Adámek Obsah přednášky Organizace předmětu Formy výuky Hodnocení Osnova Java EE aplikace Architektury Java EE aplikací Technologie Java EE Základní koncepty PA165: Úvod do Java
Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer
Jalapeño: pekelně ostrá Java persistence v Caché Daniel Kutáč Senior Sales Engineer Co je Jalapeño Pár slov ředitele vývoje software Klikni! Tak tedy, o čem dnes budeme mluvit Architektura Instalace Anotace
Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)
Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace
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
Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug
Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha
(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
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í
Úvod do Entity Frameworku
PV178 Úvod do Entity Frameworku Mgr. David Gešvindr MVP MSP MCSD: Windows Store MCSE: Data Platform gesvindr@mail.muni.cz Osnova 1. Úvod do Entity Frameworku 2. Návrh databáze s využitím Entity Framework
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,
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
Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.
Čipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5
Contents Contents 1 Semestrální práce 1 2 Axiomatic Definition of Object 2 3 UML Unified Modelling Language 2 3.1 Classes in UML............................ 3 4 Tools for System Design in UML 5 5 Student
SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři
CeMaS, Marek Ištvánek, 22.2.2015 SenseLab z / from CeMaS Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři Open Sensor Monitoring, Device Control, Recording and Playback
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
STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ
STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ Technologie Jalapeño od InterSystems Andreas Dieckow, Principal Product Manager, Strategic Planning InterSystems Corporation Úvod Programovací jazyk Java má díky
Použití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
Jak správně na Hibernate. Martin Hlavatý
Jak správně na Hibernate Martin Hlavatý Úvod Co je Hibernate? Hibernate je ORM! Agenda 18:00 18:10 ORM základní koncepty, historie, vymezení 18:10 18:25 Plain Old JDBC 18:25 18:50 Základy Hibernate 18:50
Databázové a informační systémy
Databázové a informační systémy 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 Jak ukládat a efektivně zpracovávat
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,
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
Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin
Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin (nově AllFusion Data Modeller a Process Modeller ) Doc. Ing. B. Miniberger,CSc. BIVŠ Praha 2009 Tvorba datového modelu Identifikace entit
JAVA. Aspekty (AOP) AspectJ
JAVA Aspekty (AOP) AspectJ AOP Aspect-oriented programming separation of concerns concern ~ část kódu programu související s nějakou funkčností většinou se chápe jako rozšíření OOP řeší problém, že ne
Úvod do Web Services
Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
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
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
Co je nového v Java EE 6
Co je nového v Java EE 6 Petr Adámek Disclaimer Ačkoliv jsem snažil tuto prezentaci připravit co nejpečlivěji, může obsahovat nepřesnosti nebo dokonce nepravdivé informace. S popisovanými novinkami nemám
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
Server-side technologie pro webové aplikace
Server-side technologie pro webové aplikace PIA 2011/2012 Téma 6 Copyright 2006 Přemysl Brada, Západočeská univerzita Server-side scriptování Cíl dynamické generování webového obsahu/rozhraní integrace
Project Life-Cycle Data Management
Project Life-Cycle Data Management 1 Contend UJV Introduction Problem definition Input condition Proposed solution Reference Conclusion 2 UJV introduction Research, design and engineering company 1000
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
X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.
X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web
Litosil - application
Litosil - application The series of Litosil is primarily determined for cut polished floors. The cut polished floors are supplied by some specialized firms which are fitted with the appropriate technical
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
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Online galerie: využití J2EE s JPA Petr Bludský
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Online galerie: využití J2EE s JPA Petr Bludský Bakalářská práce 2011 Prohlášení autora Prohlašuji, ţe jsem tuto práci vypracoval samostatně.
JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS JAVA EE ORGANIZÉR
COMPARISON OF OBJECT-RELATIONAL MAPPING WITH OBJECT-ORIENTED APPROACH. Jaroslav Ševčík
SROVNÁNÍ OBJEKTOVĚ RELAČNÍHO MAPOVÁNÍ S OBJEKTOVĚ ORIENTOVANÝM PŘÍSTUPEM COMPARISON OF OBJECT-RELATIONAL MAPPING WITH OBJECT-ORIENTED APPROACH Jaroslav Ševčík Mgr. Jaroslav Ševčík, Katedra informatiky
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
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA What is an FTP client and how to use it? FTP (File transport protocol) - A protocol used to transfer your printing data files to the MAFRAPRINT
Použití PostgreSQL v. P2D Martin Swiech
Použití PostgreSQL v P2D2 15.2.2018 Martin Swiech martin.swiech@zonky.cz Kdo jsme? Peer-to-peer landing platforma (lidé půjčují lidem) 15.000 aktivních půjček 16.000 investorů 1.500.000 investic BE: Java8
Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging
Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging 1. Vhodnost nasazení jednotlivých webových architektur - toto je podle Klímy
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í
Úvod do CORBY. Svetlozara Arabadzhieva 6.12.2006
Úvod do CORBY Svetlozara Arabadzhieva 6.12.2006 6.12.2006 Co je to CORBA? Common Object Request Broker Architecture Definice: Jazykov ě nezávislý objektový model a specifikace vývojového prostředí pro
JAVA V Hibernate Java, letní semestr
JAVA Hibernate ORM Object/Relational Mapping mapovaní mezi objekty a záznamy v relační databázi zjednodušeně třída ~ schéma tabulky objekt ~ řádek v tabulce ORM udržuje vazby mezi objektem a řádkem v tabulce
2011 Jan Janoušek BI-PJP. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE TRANSFORMACE GRAMATIK NA LL(1) GRAMATIKU. TABULKA SYMBOLŮ. VNITŘNÍ REPREZENTACE: AST. JAZYK ZÁSOBNÍKOVÉHO POČÍTAČE. RUNTIME PROSTŘEDÍ. 2011 Jan Janoušek BI-PJP Evropský
X33EJA Enterprise Java. Petr Šlechta Sun Microsystems petr.slechta@sun.com
X33EJA Enterprise Java Petr Šlechta Sun Microsystems petr.slechta@sun.com Web Services (dodatek) Dynamické vyvolání WS Pomocí SAAJ (SOAP with Attachments API for Java) Dynamicky vytvořit SOAP zprávu (např.
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu
Servlety a JSP Petr Adámek, petr.adamek@ibacz.eu Úvod Rekapitulace vstupních znalostí Standardy Nástroje (Běhové prostředí, nástroje pro vývoj) Servlety JSP JSP značky EL (Expression Language) Internacionalizace
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)
Návrhové vzory pro J2EE. Miroslav Beneš
Návrhové vzory pro J2EE Miroslav Beneš Obsah přednášky Význam návrhových vzorů Klasické návrhové vzory GoF Návrh prezentační vrstvy Business vrstva Vzory pro práci s daty Příklady dalších vzorů Záporné
Návrhové vzory pro J2EE
Návrhové vzory pro J2EE Miroslav Beneš Obsah přednášky Význam návrhových vzorů Klasické návrhové vzory GoF Návrh prezentační vrstvy Business vrstva Vzory pro práci s daty Příklady dalších vzorů Záporné
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost. Projekt MŠMT ČR Číslo projektu Název projektu školy Klíčová aktivita III/2 EU PENÍZE ŠKOLÁM CZ.1.07/1.4.00/21.2146
O Apache Derby detailněji. Hynek Mlnařík
O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
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
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
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ů
Softwarové komponenty a Internet
Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty
Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18
Spring Framework Pavel Mička Pavel Mička Spring Framework 1/18 Obsah Úvod 1 Úvod 2 Service locator Dependency injection Rozsah platnosti bean 3 4 Pavel Mička Spring Framework 2/18 Co je to Spring framework
Databázové systémy úvod
Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/
USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING
USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING Eva Minaříková Institute for Research in School Education, Faculty of Education, Masaryk University Structure of the presentation What can we as teachers
MySQL sežere vaše data
MySQL sežere vaše data David Karban @davidkarban AWS Certified http://davidkarban.cz/ It s not a bug, it s a feature syndrome Pravděpodobně znáte indexy. Urychlují dotazy. Mohou být řazené, vzestupně i
Návrhové vzory Tvorba objektů
Objektové modelování, AD7B36OMO Návrhové vzory Tvorba objektů ČÁST B Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze https://edux.feld.cvut.cz/courses/ad7b36omo Přednáška
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
Maven Aplikační programování v Javě (BI-APJ) - 2 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
Vladimír Mach. @vladimirmach 2. 1. 2013
Vladimír Mach @vladimirmach 2. 1. 2013 SQL Server Compact Edition Jednoduchá relační databáze Použití i v malých zařízeních s omezenými zdroji Dříve pod názvem SQL Server Mobile Časté využití při programování
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()
Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz
Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných
Správa a sledování SOA systémů v Oracle SOA Suite
Správa a sledování SOA systémů v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 7. října 2014 Marek Rychlý Správa
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
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");
Ú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
Číslo projektu: CZ.1.07/1.5.00/34.0036 Název projektu: Inovace a individualizace výuky
Číslo projektu: CZ.1.07/1.5.00/34.0036 Název projektu: Inovace a individualizace výuky Autor: Mgr. Libuše Matulová Název materiálu: Education Označení materiálu: VY_32_INOVACE_MAT27 Datum vytvoření: 10.10.2013
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í
Architektura, design, konstrukce
Architektura, design, konstrukce Dnešní program Úvod Upřesnění z minula Připomenutí poslat téma zápočtové práce. Změna pořadí cvičení Architektura Design Konstrukce Integrace Architektura vs. design Zjednodušeně:
Chapter 7: Process Synchronization
Chapter 7: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris
Metadata. RNDr. Ondřej Zýka
Metadata RNDr. Ondřej Zýka 1 Metadata Jedna z kompetencí Data managementu Cíle kompetence: Zajistit jednotné porozumění a užití termínů Provázat informace na různých úrovních (byznys, aplikační, technické)
Komponentový návrh SW
Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému
Budování architektury pomocí IAA
Budování architektury pomocí IAA Jaromír Drozd jaromir_drozd@cz.ibm.com Vysoká škola ekonomická 23.března 2007 Seminář Architektury informačních systémů 23.3.2007 Agenda 1. Představení Insurance Application
Java Cvičení 05. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Java Cvičení 05 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Test 1 Co program vypíše? Hello world Nic Něco jiného package cz.cuni.mff.java.example05.tests; public
Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE
X33EJA Security, Realms Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE 'web.xml' 'glassfish-web.xml' dále nutno nastavit realm v admin. konzoli GF 1
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í
Platformy / technologie. Jaroslav Žáček
Platformy / technologie Jaroslav Žáček jaroslav.zacek@osu.cz Které platformy / technologie znáte Java Trocha historie Java EE Java EE 5 Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Java EE
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
ITICA. SAP Školení přehled 2012. Seznam kurzů
ITICA SAP Školení přehled 2012 Seznam kurzů SAP Školení v roce 2012 Způsob realizace školení Naše školení jsou zaměřena především na cíl předvést obrovský a rozsáhlý systém SAP jako použitelný a srozumitelný
Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT
Škola: Střední škola obchodní, České Budějovice, Husova 9 Projekt MŠMT ČR: EU PENÍZE ŠKOLÁM Číslo projektu: CZ.1.07/1.5.00/34.0536 Název projektu školy: Výuka s ICT na SŠ obchodní České Budějovice Šablona
JAVA Unit testing Java, zimní semestr
JAVA Unit testing Úvod unit testing testování malý jednotek funkčnosti jednotka nezávislá na ostatních testování zcela oddělené vytvářejí se pomocné objekty pro testování kontext typicky v OO jazycích