JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 (www.jcp.org).www.jcp.org Tentativo di unificare EJB2.1 con.

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Interfacce Java.
Package Utilizzo classi.
EBRCN General Meeting, Paris, 28-29/11/20021 WP4 Analysis of non-EBRCN databases and network services of interest to BRCs Current status Paolo Romano Questa.
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
MultiSet, Liste Ordinate
Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010.
Seam.
1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
Un DataBase Management System (DBMS) relazionale client/server.
Raffaele Cirullo Head of New Media Seconda Giornata italiana della statistica Aziende e bigdata.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Model – View - Controller
Esempio: Tombola! Parte seconda.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialitica in Informatica – Università di Trento.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
SQL: Lezione 2 Esercitazione per il corso Basi di Dati Gabriel Kuper Nataliya Rassadko
SQL Esercitazione per il corso “Basi di Dati” Gabriel Kuper
Selezione (=scelta) con “if-else”
Programmazione distribuita in Java
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
Constraints.
Componenti dell’architettura Oracle
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Filtered Index and Statistics Filtered Indexes Sergio Govoni
Project Review byNight byNight December 6th, 2011.
Facelets case study: Ricettario Docente: Gabriele Lombardi
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
Attribution-NonCommercial-ShareAlike Le novità
Attribution-NonCommercial-ShareAlike Le novità
SEMINARIO INGEGNERIA DEL SOFTWARE a.a. 2006/2007
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 21th, 2011.
Project Review byNight byNight December 6th, 2011.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 5th, 2011.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
Collection & Generics in Java
Esercizi.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
Dynamic SQL.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
MySQL Database Management System
Gestione dei thread in Java
Java World Introduzione.
STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE
STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE
Corso Java Introduzione.
Java Introduzione.
Transcript della presentazione:

JPA Overview della tecnologia

Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con JDO (Java Data Object). Java Persistence API (JPA) permette di mappare POJO in dati relazionale. API standard per: – il salvataggio dei dati – la loro consultazione – Cambiamento cancellazione.

JPA I dati persistenti vengono chiamti Entity. Per esempio User puo essere una entity. I dati dellutente sono dati permanenti: – Name – Surname –

Entity public class private int id; private String name; private String surname; private String ; public User(String name, String surname, String ) { super(); this.name = name; this.surname = surname; this. = ; }

ORM TabellaClasse Colonna della TabellaCampo della Class Riga della TabellaIstanza della classe

JPA Si basa sul concetto di Cache. Flush dei dati della Cache nel database per modificare e inserire i dati nel database. In JPA il PersistenceContext e una Cache. Un EntityManager gestisce un PersistenceContext (e quindi una cache). Un EntityManagerFactory ci permette di creare una cache.

Come ottenere un EntityManager public class EMF { private static final EntityManagerFactory emfInstance = Persistence.createEntityManagerFactory("tutorial"); private EMF() {} public static EntityManagerFactory get() { return emfInstance; } Nella Servlet: EMF.get().createEntityManager()

Aggiungere un Utente if (action.compareToIgnoreCase("addUser") == 0) { // Performs some checks could be done by javascript String name = req.getParameter("name"); String surname = req.getParameter("surname"); String = req.getParameter(" "); if (name != null && surname != null && != null) { User user = new User(name, surname, ); try { em.getTransaction().begin(); em.persist(user); em.getTransaction().commit(); out.println("SAVED USER: name=" + name + " surname=" + " =" + ); } finally { em.close(); }

Visualizzare tutti gli utenti if (action == null) { Query query = em.createQuery("SELECT u FROM it.unige.dist.appengine.entity.User u"); List users = query.getResultList(); for (User user : users) { out.println("USER: name=" + user.getName() + surname= + user.getSurname() + " =" + user.get ()); }

Ricerca sugli utenti if (action.compareTo("searchBy ")==0) { String = req.getParameter(" "); if ( != null) { Query query = em.createQuery("SELECT u FROM it.unige.dist.appengine.entity.User u WHERE u. =: "); query.setParameter(" ", ); List users = query.getResultList(); for (User user : users) { out.println("USER: name=" + user.getName() + " surname=" + user.getSurname() + " =" + user.get ()); }

Rimuovere Utenti em.getTransaction().begin(); User e = em.find(User.class, Long.valueOf(id)); em.remove(e); em.getTransaction().commit();

Esempio di persistence.xml per Jboss e MySQL. <persistence xmlns=" xmlns:xsi=" xsi:schemaLocation=" version="1.0">

Entity public class private int nullable=false, length=70)) private String nullable=false, length=70)) private String nullable=false, length=70)) private String ; public User(String name, String surname, String ) { super(); this.name = name; this.surname = surname; this. = ; } … // setters & getters … }

Riferimenti Introduction to Java Persistence API(JPA): The Java EE 5 Tutorial: