Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.



Hasonló dokumentumok
Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

A Java Persistence API PersistenceAPI / 3

JPA támogatás Eclipse-ben

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

JAVA PROGRAMOZÁS 2.ELŐADÁS

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

EJB - Perzisztencia. EntityManager

Bánsághi Anna

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

C#, OOP. Osztályok tervezése C#-ban

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté

Generikus Típusok, Kollekciók

Programozás II gyakorlat. 4. Öröklődés

ANDROID ALKALMAZÁSFEJLESZTÉS

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Programozási nyelvek Java

Programozási nyelvek Java

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Metamodellezés. Simon Balázs BME IIT, 2011.

Enterprise Java Beans. EJB - Általános bevezető

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Adatbázisok webalkalmazásokban

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Access adatbázis elérése OLE DB-n keresztül

4. Öröklődés. Programozás II

ANDROID ALKALMAZÁSFEJLESZTÉS

Adatbázis rendszerek I

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

BME MOGI Gépészeti informatika 8.

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

MDAC - Microsoft Data Access Components

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

JEE tutorial. Zsíros Levente, 2012

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Programozási nyelvek Java

Java és web programozás

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Objektumelvű programozás

Adatbázis-kezelés ODBC driverrel

Adatmodellezés. 1. Fogalmi modell

JAVA PROGRAMOZÁS 3.ELŐADÁS

Pénzügyi algoritmusok

Elemi Alkalmazások Fejlesztése II.

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté

Bevezetés a Seam keretrendszer használatába

Szakdolgozat. Kovács Lilla

Származtatási mechanizmus a C++ nyelvben

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

ANDROID ALKALMAZÁSFEJLESZTÉS

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Objektumorientált paradigma és programfejlesztés Bevezető

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

Entity Framework + LINQ oktatási segédlet

Java és web programozás

Abstract osztályok és interface-ek. 7-dik gyakorlat

Osztály és objektum fogalma

Hello, EJB! Egy egyszerű példa

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

ZH mintapélda. Feladat. Felület

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Programozás I. Első ZH segédlet

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté.

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Osztályok. 4. gyakorlat

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

ANDROID ALKALMAZÁSFEJLESZTÉS

Események C#-ban Krizsán Zoltán iit

Adatbázisrendszerek. adatbázisokban. Objektumorientált és objektum-relációs adatbázisok április 24.

w w w. h a n s a g i i s k. h u 1

Bevezetés, a C++ osztályok. Pere László

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

osztályok kapcsolata Származtatatás C++ Izsó Tamás március 19. Izsó Tamás Származtatatás/ 1

OOP: Java 8.Gy: Abstract osztályok, interfészek

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

Adatbázisok - 1. előadás

Átírás:

Sapientia - EMTE 2008

Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok

Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens tárolóban. Perzisztens tároló: adatbázis

Minden alkalmazásszervernek kötelező implementálni Használható alkalmazásszerveren kívül is Osztályozaás: CMP - Container Managed Persistence AMP - Application Managed Persistence

ORM Probléma: az adatok szervezésének különbözősége Objektumorientált alkalmazás: üzleti réteg objektumok Adatbázis réteg: relációs Megoldás: ORM software ( Provider) Oracle Toplink Hibernate...

Fejlesztési lehetőségek top-down: Domain Objects Database Schema; annotációk vagy XML konfigurációs fájl bottom-up: Database Schema + Data Model Domain Objects; Reverse Engineering

Entitás osztályok I @ public class Customer implements Serializable { @Id protected Long id; protected String name; protected Address address; protected PreferredStatus status; @Transient protected int ordercount; public Customer() {} public Long getid() {return id;} protected void setid(long id) {this.id = id;} public String getname() {return name;}

Entitás osztályok II public void setname(string name) {this.name = name;}... }

Entitás osztály - megkötések az osztály publikus az attribútumok nem publikusak ha paraméterként át akarom adni (távoli interfész) akkor szerializálható elsődleges kulcsnak megfelelő attribútumot annotálni kell: @Id public vagy protected argumentum nélküli konstruktor

Elsődleges kulcs Minden entitásnak, amit relációs adatbázisra akarunk leképezni, rendelkeznie kell elsődleges kulccsal. Elsődleges kulcsként a következő típusok használhatók: Primitív típusok: byte, int, short, long, char Primitív típusok burkoló osztályai: Byte, Integer, Short, Long, Character Primitív típusok vagy azok burkoló osztályainak tömbje: byte[], int[], short[], long[], char[], Byte[], Integer[], Short[], Long[], Character[] Szöveges típusok: String Speciális numerikus típusok: java.math.biginteger Dátumok: java.util.date, java.sql.date

Alapértelmezett leképzés Entitás osztály Adattábla Entitás osztály attribútum Adattábla oszlop (mező) Entitás osztály példány Adattábla rekord Az alapértelmezett leképzés felülírható annotációkkal: @Table(name="CUST") public class Client{ @Column(name="cname") private String clientname;... }

Elsődleges kulcs generálás @ @Table( name = "CUST") public class Client{ @Id @GeneratedValue(strategy=GenerationType.AUTO) private int clientreference; //... }

Alapértelmezett leképzés felülírása @ @Table(name="CUST") public class Customer{ @Transient private int notpersistent; //.. @Column(name=cname) private String clientname; //... }

Alapfogalmak life-cycle states -életcikusának állapotok: új - new - nincs hozzárendelt rekord menedzselt - managed - szinkronban van az entitás az adatbázis rekorddal lecsatolt - detached - nincs szinkronban az entitás az adatbázis rekorddal törölt - removed - az adattábla megfelelő rekordja ki fog törlődni manager: az az objektum, amely kezeli az entitásobjektumokat, vezérli ezek életciklusát Persistence context: egyedi entitások halmaza Persistence identity: egy egyedi érték, amely az entitás azonosítására szolgál. Egy entitás objektum egy rekord

Manager műveletek persist() merge() remove() find()

Kapcsolatok entitások között Osztályozás: Kapcsolat számossága: egy-egy sok-egy egy-sok sok-sok Kapcsolat irányítottsága: egyirányú kétirányú

Egyirányú, egy-egy kapcsolat Customer Record @ public class Customer{ @Id private int id; @OneToOne private Record custrecord; //... } @ public class Record{ @Id private int recid; //... }

@OneToOne(mappedBy="custRecord") private Customer customer; //... Kétirányú, egy-egy kapcsolat Customer Record @ public class Customer{ @Id private int id; @OneToOne private Record custrecord; //... } @ public class Record{ @Id private int recid;

Egy-egy kapcsolat (egy, illetve kétirányú

Kétirányú egy-sok, illetve sok-egy kapcsolat Customer Order @ public class Customer{ @Id private int id; @OneToMany(mappedBy="customer") private Collection<Order> orders; //... } @ public class Order{ @Id private int orderid; @ManyToOne private Customer customer;

Egy-sok kapcsolat

@ public class Project{ @Id private int pid; @ManyToMany(mappedBy="projects") private Collection<Worker> workers; //... } Kétirányú sok-sok kapcsolat Worker Project @ public class Worker{ @Id private int id; @ManyToMany private Collection<Project> projects; //... }

Sok-sok kapcsolat