Java Persistence Api. 1. Introduction. 2. Un premier exemple. 3. L application.

Dimension: px
Commencer à balayer dès la page:

Download "Java Persistence Api. 1. Introduction. 2. Un premier exemple. 3. L application. benoit.charroux@efrei.fr"

Transcription

1 Java Persistence Api Cet article décrit une application qui illustre comment la sauvegarde d un graphe d objets peut être réalisé en Java Standard Edition via Java Persistence Api. 1. Introduction Java Standard Edition intègre à présent une API de persistance : Java Persistence Api (JPA). JPA permet de réaliser un Mapping Objet Relationnel en assurant la synchronisation d un graphe d objets avec des tables dans une base de données. Le but étant de masquer le plus possible la base de données sous-jacente. Il est par exemple possible de générer automatiquement les tables de la base à partir du code Java. De plus, le code, bien qu à la norme Java Standard Edition, est compatible avec la norme Enterprise Java Bean (EJB 3.0). Technologies utilisées : - Eclipse - Hibernate 3 - Spring 3 2. Un premier exemple Commençons par étudier un exemple d utilisation de JPA : EntityManagerFactory emf = EntityManager em = emf.createentitymanager(); // 4 EntityTransaction tx = em.gettransaction(); // 3 tx.begin(); Voiture voiture = new Voiture(); // 1 em.persist(voiture); // 2 tx.commit(); La partie essentielle sont les lignes 1 et 2 où on créé un objet de type Voiture, mais ce pourrait être n importe quel objet Java, puis on demande sa sauvegarde dans la basse de données via la méthode em.persist(voiture). Le reste du code, notamment la ligne 3, montre qu il est possible de réaliser des transactions. L EntityManager (ligne 4) est le point d entrée principal de JPA car c est via un EntityManager qu on accède aux méthodes de sauvegarde, de recherche, de suppression dans la base de données. 3. L application L application utilisée pour illustrer l utilisation de JPA permet à des particuliers de louer des voitures. Elle dispose d une interface utilisateur basique dans laquelle on saisit le nom d une personne désirant louer une voiture définit par son numéro d immatriculation : Page 1

2 Le code de cette interface graphique occupe la couche Présentation dans l architecture de l application (voir la figure suivante). 4. La couche Application L interface graphique accède à la couche Application via une interface : package application; public interface Location { public void louer(string nompersonne, String immatriculation) throws VoitureException; public void ajoutervoiture(string immatriculation) throws VoitureException; /** * nompersonne Le numero d'immatriculation de la voiture louee par nompersonne ou null si la personne n'a pas louee de voiture Page 2

3 PersonneException si il n'y a pas de personne ayant le nom nompersonne */ public String recherchevoiture(string nompersonne) throws PersonneException; Une implantation est bien évidement associée à cette interface : la classe LocationImpl qui n est pas détaillée ici. 5. La couche métier (les classes persistantes) La couche Métier est composé de 2 classes, Voiture et Personne associées entre elles par une association de 1 vers plusieurs. Ce sont ces 2 classes qui vont être mappées en base de données avec 2 tables. Voici la partie principale du code de la classe Personne : package public class Personne { Voiture voiture; private long public Voiture getvoiture() { return voiture; public void setvoiture(voiture voiture) { this.voiture = name = "personnegen", table="personne_sequence_generator", pkcolumnname="gen_key", valuecolumnname = "GEN_VALUE", pkcolumnvalue = "PERSONNE_ID", allocationsize = GenerationType.TABLE, generator = "personnegen") public long getid() { return id; public void setid(long id) { Page 3

4 this.id = id; On remarque la présence d annotations C est grâce à ces annotations que JPA peut générer automatiquement une table dans une base de données ainsi que le code JDBC pour y accéder : l permet de traduire des associations entre objets d un diagramme de classes en relation entre table dans la base de données ; l est obligatoire et sert à définir quel champ de la classe sera mappé avec la clef primaire de la table. Ici, on demande à JPA de générer automatiquement les valeurs pour les clefs primaires grâce à l mais c est optionnel. 6. La couche Services (où est géré la persistance) La couche Application accède à la couche Services via une interface en utilisant le pattern Data Access Object (DAO) : package services; import business.personne; import business.voiture; public interface DAO { public void createvoiture(voiture voiture); public void createpersonne(personne personne); public Personne retrievepersonne(string nom); public Voiture retrievevoiture(string numimmatriculation); public Voiture retrievevoiture(personne personne); public void updatevoiture(voiture voiture); public void updatepersonne(personne personne); public void removevoiture(voiture voiture); public void removepersonne(personne personne); Ce pattern DAO est très utilisé dans les applications JEE en général. C est dans l implantation de cette interface que toute la persistance est gérée. Voici un extrait de cette implantation : package services; public class DOAImpl implements DAO{ EntityManager em = MyEntityManagerFactory.getEntityManager(); // public void createvoiture(voiture voiture) { EntityTransaction tx = em.gettransaction(); tx.begin(); em.persist(voiture); tx.commit(); Page 4

5 public void removevoiture(voiture voiture) { EntityTransaction tx = em.gettransaction(); tx.begin(); em.remove(voiture); tx.commit(); public Personne retrievepersonne(string nom) { List liste = em.createquery( "SELECT p FROM Personne p WHERE p.nom LIKE :nompersonne" ). setparameter( "nompersonne", nom ). getresultlist(); if(liste.size() == 0){ return null; return (Personne)liste.get(0); Le code des méthodes createvoiture et removevoiture ressemble à celui de l introduction de ce document. La partie la plus intéressante, est contenue dans la méthode retrievepersonne. On y voit une requête qui est envoyée à la base de données : "SELECT p FROM Personne p WHERE p.nom LIKE :nompersonne" De fait, JPA possède un langage proche du SQL pour extraire de la base de données un ensemble d objets. 7. JPA + Spring Dans cette application, nous utilisons aussi Spring (bien que JPA puisse être utilisé sans Spring dans une application Java Standard Edition ou dans une application à la norme EJB). Spring est utilisé pour assembler les couches de l application. Le fichier XML applicationcontext.xml, conforme à la syntaxe Spring, où est défini cet assemblage est reprit en partie ici : <bean id="louervoituredialog" class="presentation.louervoituredialog"> <property name="location"> <ref bean="location"/> </property> </bean> <bean id="location" class="application.locationimpl"> <property name="dao"> <ref bean="dao"/> </property> </bean> <bean id="dao" class="services.doaimpl"/> Nous y retrouvons les trois beans correspondant aux implantations des couches Présentation, Application et Services respectivement. Page 5

6 8. La configuration de JPA Il ne reste plus à présent qu à étudier la configuration de JPA. Cela consiste principalement à choisir une base de données et une implantation de JPA. N importe quelle base de données qui dispose d un pilote JDBC de bonne qualité convient. Il y a plusieurs implantations de JPA : deux implantations couramment utilisées sont celle d Hibernate et de OpenJPA. Ici, nous utilisons Hibernate 3. La configuration se fait essentiellement dans le fichier persistence.xml qui doit être placé dans un répertoire META-INF, lui-même placé dans le répertoire qui contient les sources de l application. Voici un extrait de ce fichier : <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence version="2.0"> <persistence-unit name="manager1" transaction-type="resource_local"> <provider>org.hibernate.ejb.hibernatepersistence</provider> <jta-data-source>java:/defaultds</jta-data-source> <class>business.voiture</class> <shared-cache-mode>none</shared-cache-mode> <validation-mode>callback</validation-mode> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.hsqldialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.singletonehcacheprovider"></property> <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcdriver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:."/> <property name="hibernate.max_fetch_depth" value="3"/> </properties> </persistence-unit> </persistence> Des explications détaillées sur cette configuration sont données dans la documentation d Hibernate. Comme indiqué dans l exemple au début de ce document, le point d entrée de JPA est la classe EntityManager. Bien que Spring ne soit pas indispensable pour récupérer un EntityManager, il fournit des Helper Classes pour cela. Comme d habitude avec Spring, c est en XML qu on définit quelles classes du framework on souhaite utiliser. Voilà le second extrait du fichier (applicationcontext.xml) de définition des composants de Spring : <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource"> <property name="driverclassname" value="org.hsqldb.jdbcdriver"/> <property name="url" value="jdbc:hsqldb:hsql://localhost/"/> <property name="username" value="sa"/> Page 6

7 <property name="password" value=""/> </bean> <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localcontainerentitymanagerfactorybean"> <property name="datasource" ref="datasource" /> <property name="persistenceunitname" value="manager1" /> </bean> On y voit la déclaration de deux beans : le premier définit la source de données utilisée (ici c est la base de données HSQLDB en local) ; le deuxième est la fabrique d EntityManager. Cette fabrique s utilise de la façon suivante : ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); EntityManagerFactory emf = (EntityManagerFactory)context.getBean("entityManagerFactory"); em = emf.createentitymanager(); 9. Déploiement et lancement de l application sous Eclipse Les codes sources de ce projet ainsi que les libraires utiles (Hibernate, Spring, la base de données HSQLDB) sont à l adresse : perso.efrei.fr/~charroux/jpa+spring/ Après avoir lancé Eclipse, il faut commencer par créer un projet Java (File -> New -> Java Project) : Une fois le projet créé, décompressez les sources et les librairies dans le répertoire du projet. Rafraichissez votre projet pour qu Eclipse prenne en compte l ajout du code (File > Refresh). Votre projet doit se présenter ainsi dans Eclipse : Page 7

8 On y voit : - tous les packages correspondant aux couches de l application (application, business, presentation ) ; - le répertoire META-INF qui contient le fichier persistence.xml ; - le fichier de déclaration des beans Spring applicationcontext.xml ; - les libraries.jar. Avant de lancer l application, il faut démarrer la base de données. Ceci se fait en ligne de commande. Sous Windows par exemple, cela se fait de la façon suivante : Page 8

9 Le répertoire où exécuter cette commande est le répertoire lib du projet. La dernière étape consiste à lancer l application (voir la classe Test dans le répertoire test) : package test; public class Test { public static void main(string[] args) { Démarrage du conteneur léger de spring : ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Accès à la couche application via son interface : Location location = (Location)context.getBean("location"); Création d une voiture dans la base de données : try { location.ajoutervoiture("23 AA 94"); catch (VoitureException e) { System.out.println(e.getMessage()); Lancement de l interface utilisateur : LouerVoitureDialog louervoituredialog = (LouerVoitureDialog)context.getBean("louerVoitureDialog"); louervoituredialog.setvisible(true); Page 9

Création d une Application Web / JSF

Création d une Application Web / JSF Création d une Application Web / JSF Rédacteurs : Alexandre Baillif, Philippe Lacomme et Raksmey Phan Date : juillet 2010 Avertissement : ce document est une reprise d une partie d un document écrit par

Plus en détail

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec:

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec: Cedric Dumoulin Objectifs Comprendre l architecture typique d une application web Exemple: Application permettant de lister un catalogue d articles, et de créer des articles Expérimenter avec: EJB, JPA

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

JPA: Java Persistence API

JPA: Java Persistence API 1 2 Objet JPA JPA: Java Persistence API @Entity public class Vin implements java.io.serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; private String nomvin;

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Petstore - EJB3 Entity

Petstore - EJB3 Entity Petstore - EJB3 Entity Le tutorial aborde les différentes étapes pour implémenter les EJB3 entity. Toutes les sources du Petstore sont développées. L'application est déployée sous JBoss 5.1.0.GA. J. HILDEBRAND

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

Mapping Objet/Relationnel

Mapping Objet/Relationnel Mapping Objet/Relationnel I. Mougenot (isabelle.mougenot@univ-montp2.fr) Faculté des Sciences Université Montpellier 2 2014 Mougenot (UM2) FMIN362 Cours2 2014 1 / 14 Les limites du relationnel 1 Première

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

TP1 - Entreprise Java Beans

TP1 - Entreprise Java Beans TP1 - Entreprise Java Beans Réseaux Middlewares - Jules Chevalier 1 Configuration Minimale Pour ce TP, vous aurez besoin de outils suivants : Un JDK installé (le JRE est insuffisant) Un IDE édition Java

Plus en détail

Enregistrer un nouvel évènement

Enregistrer un nouvel évènement Maintenant que nous avons géré les utilisateurs, voyons l'enregistrement d'un nouvel évènement créé par l'utilisateur qui sera connecté au client. Là encore, nous utiliserons une couche DAO formée d'une

Plus en détail

Document d analyse. Architecture d une application Java Hibernate

Document d analyse. Architecture d une application Java Hibernate Document d analyse Architecture d une application Java Hibernate Date création du document 31/10/2007 Date de dernière mise à jour 22/09/2010 Version V1.1 Sommaire Présentation du document.... 3 Organisation

Plus en détail

Une (petite) introduction à Spring

Une (petite) introduction à Spring Une (petite) introduction à Spring 1 Introduction Le framework Spring 1 est une boite à outils très riche permettant de structurer, d améliorer et de simplifier l écriture d application JEE. Spring est

Plus en détail

Modèle et persistance des données

Modèle et persistance des données Le projet étant créé et les librairies nécessaires ayant été ajoutées, nous pouvons implémenter le modèle de données et la couche de persistance. Arborescence du projet Dans cette première étape de développement,

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 10 L API JPA et la

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 11 Le langage HQL Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire National

Plus en détail

Formation développement Java, Spring et Hibernate

Formation développement Java, Spring et Hibernate L institut de formation continue des professionnels du Web Formation développement Java, Spring et Hibernate Référence formation : Durée : Prix conseillé : DJSH 10 jours (70 heures) 4 500 HT (hors promotion

Plus en détail

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

Plus en détail

Site Web de paris sportifs

Site Web de paris sportifs Conception Nom HENAUD Benoît Numéro d auditeur 05-39166 Version V1.1 Date de mise à jour 15/05/2008 1/18 Table des matières 1. Objectif du document... 3 2. Architecture... 4 2.1. Contraintes techniques...

Plus en détail

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction La gestion de la persistance avec et la gestion de persistance Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com

Plus en détail

Développement EJB 3.0 avec Eclipse WTP et JBOSS

Développement EJB 3.0 avec Eclipse WTP et JBOSS Atelier 4-B Développement EJB 3.0 avec Eclipse WTP et JBOSS Cet atelier a pour objectif de démontrer la programmation des EJB 3.0. Il démontre l'utilisation conjointe des beans Entité et Session conformément

Plus en détail

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE INTRODUCTION À JAVA EE 1 LA NÉBULEUSE JAVA Java Micro Edition (JME) développement d applications embarquées Java Standard Edition (JSE) développement d applications classiques Java Enterprise Edition (JEE)

Plus en détail

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish TP N 4 Création d un projet Web Avec EJB JSF et Glassfish I. Les objectifs :... 1 II. L architecture de l atelier... 1 III. Rappel... 1 IV. L environnement de développement... 2 V. Création d un projet

Plus en détail

Short-Circuit Introduction a Spring. Cours Spring. Spring utilise certaines technologies comme :

Short-Circuit Introduction a Spring. Cours Spring. Spring utilise certaines technologies comme : Cours Spring 1 Présentation Générale Historique Framework créé en 2002 par Rod Johnson, afin de proposer une réelle alternative technique aux EJB s, alors gouffre de performance en terme d applications

Plus en détail

Répertorier les couches de présentation

Répertorier les couches de présentation Comprendre le fonctionnement d une application J2EE Déploiement Fichiers de configurations Relation avec la DB Objets Application J2EE de base Appli marchand simple Répertorier les couches de présentation

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Servlets, beans, base de données

Servlets, beans, base de données Institut Galilée E-services Année 2014-2015 Master 2 T.P. 2 Servlets, beans, base de données L objectif de ce TP est de mettre en place un site web pour l administration et la commande de pizzas : une

Plus en détail

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs.

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs. Cours Serveurs d application et Java avancé Introduction au cours Serveurs d application et Java avancé ITU Université de Nice Richard Grin Version O 1.0.1 12/4/14 20 h de cours et TPs Richard Grin, université

Plus en détail

M2PLS - M2EID TP SPRING

M2PLS - M2EID TP SPRING M2PLS - M2EID TP SPRING Référence du document : Http://www-lipn.univ-paris13.fr/M2PLS/tp_spring.pdf Dernière modification : 25/11/11 Type de document : Travaux pratiques Rédacteur : Fortier Michael fortier@univ-paris13,fr

Plus en détail

Industrialisation des développements Spring dans Eclipse

Industrialisation des développements Spring dans Eclipse C Industrialisation des développements Spring dans Eclipse L objectif de cette annexe est de décrire comment mettre en œuvre une approche dirigée par les modèles afin d industrialiser les développements

Plus en détail

Documentation technique

Documentation technique MEEVY Documentation technique Juillet 200 MEEVY a pour but de fournir aux artistes des outils pour promouvoir leur musique sur internet et proposer à l auditeur une plateforme de musique en ligne gratuite

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

SPRING. Master Informatique 2ème année 2011-2012. Michael Fortier fortier@univ-paris13.fr

SPRING. Master Informatique 2ème année 2011-2012. Michael Fortier fortier@univ-paris13.fr SPRING Master Informatique 2ème année 2011-2012 Michael Fortier fortier@univ-paris13.fr 1 SPRING Concepts Bean Injection Of Control (IoC) Exemple classique Aspect Oriented Programming (AOP) Data Access

Plus en détail

AlterPoker.com. Conception

AlterPoker.com. Conception Conception AlterPoker AlterPoker.com Conception Date de mise à jour : 16 / 06 / 2013 Version : 1.0 Nom VIAU Antoine Numéro d auditeur 1/18 Table des matières AlterPoker.com... 1 Conception... 1 1. Objectif

Plus en détail

EJB 3 : Session & Entity Beans

EJB 3 : Session & Entity Beans Première Partie (mise en place) EJB 3 : Session & Entity Beans 1) Faites la partie requirements de ce document avant la suite Deuxième Partie (Un petit tutorial pour commencer avec les Stateless session

Plus en détail

Mise en œuvre de serveurs d application TD n o 4

Mise en œuvre de serveurs d application TD n o 4 Master IST-IE 2007 08 UE 203d Mise en œuvre de serveurs d application TD n o 4 1 Introduction Dans ce TD, vous implanterez une application cliente, vous étendrez la logique métier sans modifier les clients,

Plus en détail

Architecture des applications

Architecture des applications Architecture des applications Table des matières 1 Introduction 1 2 Les classes valeurs 2 2.1 Les Javaeans............................................. 2 2.2 Les différents types de Javaeans...................................

Plus en détail

Les Enterprise Java Beans (version 3) SGBD

Les Enterprise Java Beans (version 3) SGBD Introduction Client léger Enterprise Java Bean (EJB) : Modèle de composants pour le développement d'applications d'entreprises Les Enterprise Java Beans (version 3) SGBD Modèle de programmation!! Par objet

Plus en détail

EXA1415 : Annotations JavaEE : @Local, @Stateful

EXA1415 : Annotations JavaEE : @Local, @Stateful EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération

Plus en détail

JAVA. (Java-sans objet) (Dernière édition) Programme de formation. et (Java - Hibernate &Spring) France, Belgique, Suisse, Roumanie - Canada

JAVA. (Java-sans objet) (Dernière édition) Programme de formation. et (Java - Hibernate &Spring) France, Belgique, Suisse, Roumanie - Canada JAVA (Java-sans objet) et (Java - Hibernate &Spring) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser

Plus en détail

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application.

Implémentée sous forme de JavaBean ou EJB, c est dans cette couche que l on retrouve l ensemble des traitements d une application. Introduction Nous allons parler, dans ce document consacré aux architectures multi-tiers en environnement J2EE, de 3 des cinq couches les plus représentatives. Faisons tout d'abord un petit rappel sur

Plus en détail

Facilitez vos développements J2EE avec JBoss Seam

Facilitez vos développements J2EE avec JBoss Seam Nicolas CHAPON Valtech Technology Facilitez vos développements J2EE avec JBoss Seam Octobre 07 Résumé Le framework JBoss Seam est actuellement un des frameworks de la communauté Java qui génère le plus

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Traitement et navigation

Traitement et navigation 12 Traitement et navigation Au chapitre précédent, nous avons vu comment créer des pages web avec différentes technologies (HTML, JSP, JSTL, etc.) en insistant sur le fait que JSF est la spécification

Plus en détail

Introduction au développement en couches

Introduction au développement en couches Introduction au développement en couches Lorsque l on est débutant en programmation, on entend souvent dire qu il est important de développer ses applications en utilisant des couches, en séparant le code

Plus en détail

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse IFT287 Exploitation de base de données relationnelles et orientées objet Laboratoire Mon premier programme Java en Eclipse Comment faire? Nous allons utiliser l environnement de travail proposé par Eclipse

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/57 Ces transparents, ainsi que les énoncés

Plus en détail

Génération de la base de données

Génération de la base de données La couche JPA de notre programme est désormais constituée d une entité JPA et du fichier de configuration d Hibernate. Le but est maintenant de compléter notre projet pour pouvoir générer la base de données

Plus en détail

Création d'un convertisseur SQL SiTools

Création d'un convertisseur SQL SiTools Création d'un convertisseur SQL SiTools 1 - Introduction Un convertisseur permet de transformer la requête SQL, envoyé par la webapp SiTools à la webapp catalog ou l'inverse. C'est à dire que cette conversion

Plus en détail

Relation many-to-one. Implémentation de l'association. Relation bidirectionnelle

Relation many-to-one. Implémentation de l'association. Relation bidirectionnelle Ajoutons maintenant la classe User et l'association many-to-one qui la lie avec la classe Event. L'arborescence du projet est maintenant la suivante : Implémentation de l'association Relation bidirectionnelle

Plus en détail

Spring : tendances, nouveautés et perspectives

Spring : tendances, nouveautés et perspectives Spring : tendances, nouveautés et perspectives Paris JUG 13/11/2012 Arnaud Cogoluègnes Speaker Arnaud Cogoluègnes Consultant chez Zenika Formateur certifié SpringSource Co-auteur Spring Batch in Action

Plus en détail

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

Persistance XML avec Hibernate

Persistance XML avec Hibernate Persistance XML avec Hibernate 1 Introduction Hibernate s est récemment fait connaître comme une solution efficace pour assurer la persistance d applications développées en Java dans des bases de données

Plus en détail

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 Institut Géographique National Laboratoire COGIT GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 28 février 2007 Eric Grosso Résumé : Ce document a pour but de comprendre GeOxygene

Plus en détail

Projet Telosys : Framework global et outil de génération de code

Projet Telosys : Framework global et outil de génération de code Projet Telosys : Framework global et outil de génération de code Laurent Guérin laurent.guerin@sogeti.com @ltguerin Telosys Project Leader Sogeti & OW2 Consortium Solutions Linux / Session OW2-20 juin

Plus en détail

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

GRAILS L'ARCHITECTURE GRAILS

GRAILS L'ARCHITECTURE GRAILS GRAILS L'ARCHITECTURE GRAILS Grails est un serveur d'application web basé sur le langage Groovy, et le framework Spring. Il est édité par la société : SpringSource. Une application Grails se décompose

Plus en détail

Introduction à ADO.NET

Introduction à ADO.NET 1 Introduction à ADO.NET Introduction à ADO.NET Sommaire Introduction à ADO.NET... 1 1 Introduction... 2 1.1 Qu est ce que l ADO.NET?... 2 1.2 Les nouveautés d ADO.NET... 2 1.3 Les avantages d ADO.NET...

Plus en détail

Environnements de développement

Environnements de développement Environnements de développement UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/edi/ Extension de la plate-forme Eclipse Résumé 1 Rappels de

Plus en détail

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir Consignes pour le bons déroulement du devoir - Ce document comporte un QCM et une partie où il faut écrire du code en - Marquez vos réponses au QCM sur la feuille de réponses fournie (notez que certaines

Plus en détail

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 3 Base de données, JDBC et Mapping Objet-relationnel L'objectif de ce TP est de vous faire pratiquer l'api JDBC qui permet d'accéder à une base de données

Plus en détail

Rapport UML/Java. Projet 2 semestre CSII2. Développement d un site internet de gestion de projet

Rapport UML/Java. Projet 2 semestre CSII2. Développement d un site internet de gestion de projet 2010 Rapport UML/Java Projet 2 semestre CSII2 Développement d un site internet de gestion de projet Teychene Francois / Lecointe Nicolas / Ballard Sylvain EPSI Montpellier 17/01/2010 Rapport UML/Java 2

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Laboratoire 2 Conception du serveur d application et du client

Laboratoire 2 Conception du serveur d application et du client DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG660 - BASE DE DONNÉES HAUTE PERFORMANCE Laboratoire 2 Conception du serveur d application et du client 1 Introduction Au cours de la session, les laboratoires

Plus en détail

Guide Pratique EDI NetBeans

Guide Pratique EDI NetBeans Guide Pratique EDI NetBeans Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table des matières Assistant type de Projet EJB...2 Structure Module EJB...5 Ajout d'ejb, Fichiers et Bibliothèques

Plus en détail

1- Créer notre DatabaseHelper, enfant de SQLiteOpenHelper (permet de créer nos tables) 2- Créer notre Model qui contiendra les requêtes

1- Créer notre DatabaseHelper, enfant de SQLiteOpenHelper (permet de créer nos tables) 2- Créer notre Model qui contiendra les requêtes B53 Android SQLite SQLite est intégrée au moteur d exécution d Android. Il s agit d un SGBD très apprécié car il fournit une interface SQL tout en nécessitant un minimum de mémoire et en fournissant une

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

XText. Un langage spécifique à la description de graphe

XText. Un langage spécifique à la description de graphe XText - Un langage spécifique à la description de graphe Laboratoire d'analyse et d'architecture des Systèmes XText Un langage spécifique à la description de graphe Résumé: Un langage de description de

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Java Spring Le socle technique des applications JEE

Java Spring Le socle technique des applications JEE Avant-propos 1. Préambule 15 2. Introduction 17 3. Organisation du livre 19 4. Public visé 19 5. Pourquoi Spring 20 6. Prérequis pour aborder sereinement la lecture de ce livre 20 7. Objectifs du livre

Plus en détail

Développement photo en ligne. Création d'un site de 1/47

Développement photo en ligne. Création d'un site de 1/47 Création d'un site de développement photo en ligne Nom Version DUTRA CANCADO Alexandre 0.129 Numéro d auditeur Date de mise à jour I000751 31/05/2006 1/47 Table des matières 1. Objectif du document...5

Plus en détail

Retour à la simplicité. Vincent Tencé @testinfected http://vtence.com http://github.com/testinfected

Retour à la simplicité. Vincent Tencé @testinfected http://vtence.com http://github.com/testinfected Retour à la simplicité Vincent Tencé @testinfected http://vtence.com http://github.com/testinfected Un sentiment de déja-vu? Vous démarrez un projet avec une dizaine de librairies et frameworks Le bagage

Plus en détail

Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL

Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL Conseil, Etudes et Edition de logiciels NORMES & CONVENTIONS DE DEVELOPPEMENT JAVA ET SQL Table des matières Système d'exploitation... 3 Environnement de développement intégré... 3 Le workspace... 3 Le

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

Web services en Java (services Web) JMF (Tous droits réservés) 1

Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services (services web) : qu'est ce? Une architecture orientée objet et distribuée où les messages sont en syntaxe XML Ce n'est pas

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

L arboretum de St André

L arboretum de St André L arboretum de St André Description du thème Propriétés Description Intitulé long Formation concernée Matière SLAM 4 Présentation Notions Transversalité SLAM 3 Pré-requis Outils Mots-clés Durée Auteur(es)

Plus en détail

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé Template pour les mails Version 1.0 du 13/04/2010 Etat : Validé SUIVI DES MODIFICATIONS Version Rédaction Description Vérification Date 1.0 A. Lesuffleur création du document 13/04/10 Document validé dans

Plus en détail

Bases de données et environnements distribués Chapitre V : Serveurs d applications Modèle de composants EJB

Bases de données et environnements distribués Chapitre V : Serveurs d applications Modèle de composants EJB Bases de données et environnements distribués Chapitre V : Serveurs d applications Modèle de composants EJB Éric Leclercq révision Nov. 2013 Département IEM / Laboratoire LE2i émail : Eric.Leclercq@u-bourgogne.fr

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1 Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage

Plus en détail

VISUAL PARADIGM. C. Présentation de Visual Paradigm For UML TRANSFORMATION DE MCD EN MLD ITÉRATIVE. Document version 1

VISUAL PARADIGM. C. Présentation de Visual Paradigm For UML TRANSFORMATION DE MCD EN MLD ITÉRATIVE. Document version 1 HEG Arc - Haute école Arc Gestion Travail de Bachelor d'informaticien de gestion VISUAL PARADIGM TRANSFORMATION DE MCD EN MLD ITÉRATIVE C. Document version 1 Créé le : 17.06.2012 Modifié le : 01.07.2012

Plus en détail

JUnit 3.8 / JUnit 4. P. Graffion

JUnit 3.8 / JUnit 4. P. Graffion JUnit 3.8 / JUnit 4 P. Graffion février 2015 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Master d Informatique Spécialité «Développement à l Offshore des Systèmes d Information»

Master d Informatique Spécialité «Développement à l Offshore des Systèmes d Information» Université de Bretagne Occidentale (Brest) UFR Sciences et Techniques Master d Informatique Spécialité Développement à l Offshore des Systèmes d Information 1 Contexte Depuis 2007, l Université de Bretagne

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Documentation technique

Documentation technique Documentation technique Documentation technique Résumé Ce document s adresse aux membres du labeip et à toute personne qui voudrait prendre connaissance des caractéristiques techniques de Medley (développeur,

Plus en détail