Programozás III JPA.

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
C++ programozási nyelv Gyakorlat hét
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Adatbázis-kezelés.
2. GYAKORLAT E-K modellből relációs adatbázisséma.
Delphi programozás alapjai
Programozás III KOLLEKCIÓK 2..
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
Hibernate Nem ezzel nem lehet embereket hibernálni! DE akkor mit lehet? A válasz pedig ezekben a diákban rejlik.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
16. Tétel. Adatbázis: Olyan adatgyűjtemény, amely egy adott feladathoz kapcsolódó adatokat szervezett módon tárolja, és biztosítja az adatokhoz való hozzáférést,
(MY)SQL MEGJEGYZÉSEK. MYISAM VS. INNODB  A MySQL-ben többféle tárolási motor is használatos: MyISAM, InnoDB  A régebbi verziókban a MyISAM alapértelmezett,
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 10. Adatkezelés JPA-Hibernate Dr. Bilicki Vilmos Szegedi.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Adatbázis rendszerek II.
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Adatbázis-kezelés ACCESS program:
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
C# tagfüggvények.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
C# tagfüggvények.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Adatbázis kezelés Delphiben
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Nézettáblák létrehozása, módosítása és törlése
XML támogatás adatbázis-kezelő rendszerekben
SQL, Relációs adatmodell
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
Az SQL nyelv alapjai.
Perzisztencia-megoldások Java Technológiával Molnár István, Simon Géza.
Tervezés, Normalizálás
Adatbázisrendszerek világa
Adatkezelés Ez az előadó neve beosztása vállalata.
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Nézzük, mit tudunk…. Mire gondoltam? Megjeleníti az adott adatbázishoz kapcsolódó összes objektumot : adatbázis ablak.
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
Adatbázis-kezelés JAG,
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Adatbázis kezelés.
Adatbázis-kezelés Probléma: az excel kezelhetetlen túl sok adat esetén
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázisok gyakorlat
Adatbázis-kezelés.
Adatbázis alapfogalmak
Apache Ant 2. gyakorlat Alkalmazásfejlesztés /2 Gyakorlat Zalatnai Csongor.
Webprogramozó tanfolyam
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
Java web programozás 7-8..
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
 Adatbázis:  Valamilyen szempont szerint rendszerezett adathalmaz.  Adatbázis kezelés:  Adatok tárolása  Műveletek végzése az adatbázison; (Adatok.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
ACCESS ALAPOK Alapfogalmak
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Készítette: Kiss András
Alkalmazásfejlesztés gyakorlat
Hibernate / EclipseLink / OpenJPA összehasonlítás
Adatbáziskezelés.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Relációs adatmodell, normálformák
DDL parancsok – Tábla műveletek, mezőtulajdonságok
Előadás másolata:

Programozás III JPA

JPA Java Persistence API (JPA): Java keretrendszer relációs adatok kezelésére. Perzisztencia: olyan adat, amely túléli az őt létrehozó folyamatot. Perzisztálási módok pl.: JDBC, szerializálhatóság, XML adatbázisok, stb. Legtöbb esetben az adat nagy részét relációs adatbázisok-ban tároljuk. Az ehhez való hozzáférés egyik módja a JPA.

JPA Perzisztencia entitás: olyan Java osztály, mely kapcso-lódik egy relációs adatbázis táblájához, példányai az adattábla egyes sorainak felelnek meg. A JPA definiál egy Entity Manager API-t is, amely futási időben dolgozza fel a lekérdezéseket és a tranzakciókat.

ORM Objektum relációs leképezés (Object-Relational Mapping): Cél: objektumok tárolása adatbázisban Probléma: az objektum-orientált és a relációs adatmodell közötti különbségek Megoldás: automatizált leképezés

ORM Osztályhierarchia – Séma Osztály – Tábla Mező – Oszlop Objektum – Sor

JPA HASZNÁLATA A JPA egy interfész, melyet implementálni lehet – különböző provider-ek implementálják, pl. EclipseLink, Hibernate, stb. Entitások: Java osztályok (POJO) annotációkkal Alapelem: Entity = perzisztens osztály Perzisztens modul minden olyan jar, amelynek META-INF könyvtárában van persistence.xml fájl, amelyben definiáljuk pl. a providert, az adatbázis nevét, stb. A javax.persistence csomag tartalmazza.

ENTITÁS MEGADÁSA Java osztály @Entity annotációval indítva, default (azaz argumentum nélküli) konstruktorral. Általában szerializálható (implements Serializable) Kötelező elsődleges kulcs attribútum: @Id Többféle automatikus ID-generáló stratégia adható meg a @GeneratedValue strategy paraméterben. A perzisztens attribútumokat a kliensek getterek/setterek-en keresztül érhetik el.

ENTITÁS MEGADÁSA Minden további annotáció opcionális, mert az entitás, illetve az attribútumok nevével azonos a default tábla- és oszlopnév. Saját tábla-, ill. oszlopnév megadása: @Table(name=”MyTable”) @Column(name=”MyColumn”) Az oszlop egyéb paraméterei: nullable, unique, length,...

RELÁCIÓK Számosság szerint: @OneToOne @OneToMany @ManyToOne @ManyToMany Irány szerint kétféle: - Egyirányú - Kétirányú (a kapcsolat mindkét végén levő entitásnak lesz kapcsolatmenedzselő getter/setter metódusa): mappedBy paraméter. Kétirányú OneToMany = Kétirányú ManyToOne A kapcsolatnak mindig egy tulajdonos oldala van.

RELÁCIÓK Tulajdonos oldalon (Employee): @ManyToOne @JoinColumn(name=”company_id”) private Company company; Másik oldalon (Company): @OneToMany(mappedBy=”company_id”) private Collection<Employee> employees; A @JoinColumn helyett @JoinTable használandó, ha külön tábla tartja nyilván a kapcsolatot (pl. ManyToMany esetén mindenképpen) A @ManyToOne kötelezően tulajdonos oldal, mert nincs mappedBy paramétere, többi esetben szabadon választható a tulajdonos oldal

JPQL A Java Persistence Query Language (JPQL) egy objektum szintű lekérdező nyelv, segítségével a relációs adatbázis-ban tárolt entitások kérdezhetők le. A lekérdezések szintaxisa hasonló az SQL lekérdezések-hez, de ezekben a lekérdezésekben entitás objektumokat kezelünk, nem közvetlenül adattáblákat. Pl: select s from Student s

Automatikus sémalétrehozás ECLIPSELINK A provider neve org.eclipse.persistence.jpa.PersistenceProvider Automatikus sémalétrehozás <property name="eclipselink.ddl-generation" value="dropand-create-tables"/> vagy create-tables <property name="eclipselink.ddl-generation. output-mode" value="database"/>

ECLIPSELINK HASZNÁLATA EntityManager lekérése EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); EntityManager em =factory.createEntityManager(); Tranzakció kezdése: entityManager.getTransaction().begin(); Tranzakció befejezése: entityManager.getTransaction().commit(); EntityManager lezárása: entityManager.close();

Előadáspéldák (coospace vagy witch): – studentJPA – studentJPAFromMySQL – studentsPhonesJPA Mindegyik Maven projekt. A pom.xml helye: Project Files A persistence.xml helye: Other Sources / src / main / resources / META-INF

PÉLDÁK További megjegyzések: A studentsPhonesJPA induló sql scriptjének helye: META-INF/sql kódolása: UTF-8 Az 1. és 3. példa esetében futtatáskor létrejön az adatbázist tároló …DB mappa – ez akár ki is törölhető, akkor visszaáll az eredeti kezdőállapot.