Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Podobne dokumenty
Programowanie obiektowe

JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Enterprise JavaBeans 3.0

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Zaawansowane aplikacje internetowe - laboratorium

Java Enterprise Edition spotkanie nr 6. przygotował Jacek Sroka. Java Persistence API

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Podejście obiektowe do relacyjnych baz danych Hibernate.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Dostęp do baz danych w aplikacjach Java EE

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Java Persistence API. Class powinny być zaznaczone. Kliknij przycisk Finish.

Wielowarstwowe aplikacje internetowe - laboratorium

Nowy powiew od Słońca: EJB 3.0. Copyright Piotr Kochański & Erudis,

Programowanie obiektowe

Hibernate mapowanie baz danych

Java Persistence API (JPA)

JAVA PERSISTENCE API. Wykorzystano fragmenty wykładów M. Piotrowskiego i M. Wójcika. Waldemar Korłub

Budowa prostej aplikacji wielowarstwowej

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Podstawowe informacje o technologii Java Persistence API - przykład

Karolina Rusin, Paweł Biczysko, Michał Olejnik. 11 maja 2009

Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Przykład

Wzorce logiki dziedziny

Podstawowe informacje o technologii Java Persistence API - przykład

Katalog książek cz. 2

ORM w Javie. Adam Michalik 2007

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

JPA Java Persistance API

Programowanie w języku Java. Bazy danych SQLite w Javie

Podstawowe wykorzystanie Hibernate

PRZEWODNIK PO PRZEDMIOCIE

Zaawansowane Techniki Bazodanowe

Programowanie obiektowe

Wprowadzenie do technologii JavaServer Faces 2.1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Przygotował: Jacek Sroka. Java Persistence API

Agenda. Grzegorz Wilaszek, Wojciech Krzystek

Programowanie w języku Java WYKŁAD

akademia androida Składowanie danych część VI

Tworzenie warstwy integracji i uzupełnienie wartwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Metody dostępu do danych

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Enterprise JavaBeans

Programowanie wielowarstwowe i komponentowe

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Tomasz Dobek.

Java Persistence API - zagadnienia zaawansowane

Wprowadzenie do Doctrine ORM

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Hibernate. Adrian Gawor, Adam Klekotka, Piotr Kubisz. Technologie Biznesu Elektronicznego. 12 maja 2009

Programowanie obiektowe

Technologia Programowania 2016/2017 Wykªad 12

Java. Programowanie Obiektowe Mateusz Cicheński

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Metody dostępu do danych

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie komponentowe 5

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Bazy danych SQLite w Javie

Budowa aplikacji wielowarstwowych, zastosowanie obiektów transferowych, konwerterów i walidatorów

Załącznik Nr 5 do Zarz. Nr 33/11/12

Podstawowe informacje o technologii Java Persistence API

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Co nowego w Java EE?

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Programowanie komponentowe

mgr inż. Michał Paluch

Budowa aplikacji wielowarstwowych. Zastosowanie konwerterów oraz plików typu properties.

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania

Zastosowanie komponentów EJB typu Session

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Co nowego w Java EE?

Zaawansowane aplikacje WWW - laboratorium

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Programowanie obiektowe

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

1 Wprowadzenie do J2EE

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Enterprise JavaBean 3.0

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Db4o obiektowa baza danych wersja.net

Laboratorium Programowania Kart Elektronicznych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Odwzorowanie obiektowo-relacyjne

Transkrypt:

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA ORM (Object Relationa Mapping)/ORB (Object Relational Broker) to nazwa mechanizmu tłumaczenia obiektowej postaci danych wykorzystywanej w aplikacjach Java / C++ / C# / Python itp. W aplikacjach dostęp do danych odbywa się w sposób zgodny z paradygmatem podejścia obiektowego a ORM zapewnia, że fizycznie dane są przechowywane w relacyjnych bazach danych PostgreSQL, Oracle, MySQL itp. W języku Java mechanizm ORM realizowany jest przez standard JPA (Java Persistence API) implementowany najczęściej poprzez jedną z bibliotek Hibernate / EclipseLink (TopLink)/ OpenJPA. Mapowanie package pwrprogram.model; import java.io.serializable; import java.sql.date; import java.util.arraylist; import java.util.list; import javax.persistence.attributeoverride; import javax.persistence.attributeoverrides; import javax.persistence.column; import javax.persistence.embeddedid; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.onetomany; import javax.persistence.table; @Entity @Table(name="Przedmioty") public class Przedmioty implements Serializable { /** * */ private static final long serialversionuid = 4742973919813402987L; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) Long id; String przedmiot; String modul; String symbol; Integer rok; Integer semestr; Integer zzu; Integer cnps; Integer ects; Integer ectsbk; String forma; Boolean tradycyjny;

String zaliczenie; Boolean ogolnouczelniany; String rodzaj; // Boolean typ; Boolean czy_wybor; Long id_grupa; String specjalnosc; String uwagi; String kierunek; String rokakademicki; private Boolean praktyczny; private Boolean stacjonarne; private Boolean usm; private String krk1; private String krk2; private Long godziny; 2. public Long getid() { return id; public void setid(long id) { this.id = id; public String getprzedmiot() { return przedmiot; public void setprzedmiot(string przedmiot) { this.przedmiot = przedmiot; public Integer getrok() { return rok; public void setrok(integer rok) { this.rok = rok; public Long getgodziny() { return godziny; public void setgodziny(long godziny) { this.godziny = godziny; Język HSQL Język pokrewny do SQL-a, w którym zamiast nazw tabel i ich pól używane są nazwy klas i ich pola, nie występuje inner join (dostęp do połączonych i zagnieżdżonych obiektów odbywa się po prostu poprzez operator kropki) za to są instrukcje fetch join (omówimy je przy strategiach ładowania danych do pamięci) Query q=em.createquery("select p from Parametry p where p.nazwaparametru =:p"); q.setparameter("p", ACTUAL_YEAR); Query q1=em.createquery("select p from Przedmioty p where p.rokakademicki=:rok and p.kierunek=:kierunek"); q1.setparameter("rok",ra); q1.setparameter("kierunek",kierunek);

3 Elementy architektury JPA Dołączone biblioteki JPA i odpowiedni JDBC

4 Persistence.xml Plik w katalogu Meta-inf definiujący połączenie z serwerem baz danych na którym fizycznie będą przechowywane dane <?xml version="1.0" encoding="utf-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="pwr_program"> <provider>org.hibernate.jpa.hibernatepersistenceprovider</provider> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="eclipselink.ddl-generation.output-mode" value="database" /> <property name="hibernate.archive.autodetection" value="class" /> <property name="hibernate.dialect" value="org.hibernate.dialect.postgresqldialect" /> <property name="hibernate.connection.driver_class" value="org.postgresql.driver" /> <property name="hibernate.connection.url" value="jdbc:postgresql://127.0.0.1:5432/politechnika_programy" /> <property name="hibernate.connection.username" value="postgres" /> <property name="hibernate.connection.password" value="postgres" /> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.flushmode" value="flush_auto" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>

5 Adnotacje @Entity - definicja klasy typu persistant, które ma swój odpowiednik w tabeli bazodanowej @Table nazwa tabeli odpowiadającej @NamedQuery definicja kwerendy w języku HSQL związanej z klasą encyjną (typu persistant) umieszczona w definicji tej klasy (większość środowisk programistycznych sprawdza poprawność takich kwerend w przeciwieństwie do tych umieszczonych bezpośrednio w kodzie) @Id, @GeneratedValue - informacje, że EntityManager em=persistence.createentitymanagerfactory("pwr_program").createentitymanager(); em.gettransaction().begin(); if(p.getid()!=null){ p=em.merge(p); else{ em.persist(p); em.gettransaction().commit(); return p;