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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcription

1 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 Elle comporte les attributs suivants : public class User { private Integer id; private String login; private String ;

2 private String pass; private List eventlist; public User() public User(String login, String , String pass) { this.login = login; this. = ; this.pass = pass; // Getters et setters Contrairement à la classe Adresse vue précédemment, la classe User comporte un attribut relatif à Event: puisqu'un User peut créer plusieurs Event, nous voulons conserver la liste de ceux-ci. A l'inverse, il faut pouvoir accéder, depuis l'event, à son créateur : la classe Event doit donc également posséder un attribut de type User. En base de données, cela ne change rien, puisque l'accès aux données dans une structure relationnelle n'a pas de "direction", contrairement au monde objet du Java. Le principe de cet accès possible dans les deux sens s'appelle une association bidirectionnelle et le mapping qui s'ensuit doit être présent dans les deux entités. Afin d'éviter à Hibernate tout conflit ou violation de contrainte, nous devons définir l'une des directions comme étant le sens "principal" de l'association. Lors de l'enregistrement d'un couple Event-User, c'est l'entité

3 maîtresse de l'association qui se chargera de lancer une requête SQL de type update pour mettre à jour les clés étrangères. Dans notre cas, nous aurons plus tendance à enregistrer un nouvel utilisateur, puis à créer un Event qui lui sera lié. Ce sera donc plutôt l'event qui mettra à jour la relation et qui sera donc l'entité maîtresse. Mapping de la classe User Du côté de la classe User, nous sommes dans une relation OneToMany (un User pour plusieurs Events), traduite par l'annotation bien Afin de traduire le caractère secondaire de l'entité User dans cette relation, nous utilisons l'attribut "mappedby" qui référence le nom de l'attribut User dans la classe Event. Ici, la ligne 23 indiqué donc que la classe Event devra donc comporter un attribut de type User appelé user : import java.util.list; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.onetomany;

4 public class @Column(name="users_id") private Integer private String private String private String private List eventlist; public User() public User(String login, String , String pass) { this.login = login; this. = ; this.pass = pass;

5 // Getters et setters Modifications du mapping de la classe Event L'entité Event constitue le côté principal de l'association, ce qui se traduit par la présence d'une (sens inverse par rapport à User). C'est également de ce côté que nous indiquerons les informations relatives aux cascades, à la colonne de jointure si l'on veut choisir son nom et non laisser celui par défaut. Concernant les types de cascades à choisir, il n'est ici pas judicieux de tous les sélectionner. En effet, un User pouvant posséder plusieurs Events, il ne faudrait pas que la suppression d'un Event engendre la suppression son User, celui-ci pouvant être également liés à d'autres instances d'events. Les types de cascade Persist et Merge, par contre, seront les bienvenus : import java.util.calendar; import java.util.gregoriancalendar; import java.util.simpletimezone; import javax.persistence.cascadetype; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id;

6 import javax.persistence.joincolumn; import javax.persistence.manytoone; import javax.persistence.onetoone; import javax.persistence.table; import javax.persistence.temporal; public class @Column(name="events_id") private Integer cascade= private User user;

7 // Autres attributs vus précédemment // Constructeurs // Getters et setters Modifications de la classe de test L'implémentation de l'association étant prête, occupons-nous maintenant des modifications à effectuer dans la classe Main pour pouvoir tester notre nouveau mapping. Affichage du contenu de la table USERS Sur le même modèle que les méthodes d'affichage précédentes, nous rédigeons une méthode printusers() chargées de lister le contenu de la table USERS et de l'afficher. import java.util.arraylist; import org.hibernate.query; import org.hibernate.session; import org.hibernate.transaction; import fr.mistra.pgejpav2.jpa.event; import fr.mistra.pgejpav2.jpa.user; private static void printusers() { System.out.println("---Users---");

8 // Création de la requête Query q = s.createquery("from User"); ArrayList list = (ArrayList) q.list(); // Affichage de la liste de résultats for (User u: list) { System.out.println("[id] = " + u.getid() + "\t" + "[login] = " + u.getlogin() + "\t" + "[ ] = " + u.get () + "\t" + "[pass] = " + u.getpass()); if (u.geteventlist()!= null) { System.out.print("Events ID : "); for (Event e : u.geteventlist()) System.out.print(e.getId() + " "); System.out.println(); Notons qu'aux lignes, nous affichons, en plus des attributs "simples", la liste des identifiants de tous les évènements liés à un utilisateur. De cette manière, nous pouvons vérifier le bon fonctionnement de l'attribut mappedby utilisé dans le mapping de l'entité User.

9 Modification de l'affichage de la table EVENTS De même, nous modifions la méthode printevents() pour qu'elle affiche l'identifiant de l'utilisateur asoscié : private static void printevents() { System.out.println("---Events---"); // Création de la requête Query q = s.createquery("from Event"); ArrayList list = (ArrayList) q.list(); // Affichage de la liste de résultats for (Event e: list) { System.out.println("[id] = " + e.getid() + "\t" + "[title] = " + e.gettitle() + "\t" + "[desc] = " + e.getdescription() + "\t" + "[date] = " + e.getbegindate().gettime().tolocalestring() + "\t" + "[allday] = " + e.isallday()); if (e.getaddress()!= null) System.out.println("[addressID] = " + e.getaddress().getid()); if (e.getuser()!= null) System.out.println("[userID] = " + e.getuser().getid());

10 Enregistrement de nouveaux utilisateurs Modifions enfin la méthode testcreate(). Nous avions auparavant une Address a liée à un Event e. Afin de bien observer les effets de l'association, nous allons créer puis enregistrer : un User u lié l'event e, un nouvel Event e2 sans adresse lié lui aussi à l'user u, un nouvel User u2 non lié à un Event. Dans le chapitre précédent, nous avions vu que si un Event possède une relation one-to-one avec une Address, le type de cascade Persist permettait de sauvegarder l'address automatiquement lorsqu'un appel à persist() est fait sur un Event. Il serait donc tentant de faire de même ici : sauvegardons les Events e1 et e2. Puisque l'address a et l'user u sont liés à ces entités, il ne semble pas nécessaire de les demander explicitement leur sauvegarde. L'User u2, par contre, n'est pas lié à un Event : il faut donc le sauvegarder manuellement. Implémentons donc ceci dans la méthode testcreate() : private static void testcreate() { //Création des objets à rendre persistants Event e = new Event("Titre de l'évènement", "description", true); Address a = new Address("Nom de l'adresse", "24 rue des cerisiers", "75001", "Paris");

11 User u = new User("mistra", "mistra(a)mistra.fr", "formation"); User u2 = new User("John Doe", "john.doe(a)mistra.fr", "password"); Event e2 = new Event("Event sans adresse", "", false); // Liens d'associations pour l Event e e.setaddress(a); e.setuser(u); // Liens d'associations pour l'event e2 e2.setuser(u); // Liste des deux Event de l User u ArrayList eventlist = new ArrayList(); eventlist.add(e); eventlist.add(e2); u.seteventlist(eventlist); // Enregistrements Transaction tx = s.begintransaction(); s.persist(e); s.persist(e2);

12 s.persist(u2); tx.commit(); // Affichage du contenu des tables printevents(); printaddresses(); printusers(); Effectivement, lors de l'exécution, nos cinq entités sont bien présentes, et toutes les associations ont été correctement tranformées en clés étrangères: ---Events--- [id] = 1 [title] = Titre de l'évènement [desc] = description [date] = 16 juil :34:09 [allday] = true [addressid] = 1 [userid] = 1 [id] = 2 [title] = Event sans adresse [desc] = [date] = 16 juil :34:09 [allday] = false [userid] = 1 ---Addresses--- [id] = 1 [name] = Nom de l'adresse [street] = 24 rue des cerisiers [comments] = null [zipcode] = [city] = Paris

13 ---Users--- [id] = 1 [login] = mistra [ ] = mistra(a)mistra.fr [pass] = formation [Events ID ]: 1 2 [id] = 2 [login] = John Doe [ ] = john.doe(a)mistra.fr [pass] = password [Events ID ]: De la même manière, nous implémenterons la classe Items et l'association many-to-one existant entre une liste d'items et un Event. L'importance des cascades Nous avons découvert les cascades au chapitre précédent. L'association bidirectionnelle entre Event et User nous donne une parfaite occasion d'en voir les implications réelles. Dans ce chapitre, nous avons rendu persistants les Events de façon explicite avec l'appel à la méthode persist(). Nous avons fait de même pour l'address et l'user qui leurs étaient liés de façon implicite et automatique grâce aux cascades de type Persist. Enlevons maintenant les cascades du mapping entre Event et

14 public class @Column(name="events_id") private Integer id; // private User user; // Constructeurs // Getters et setters Si nous relançons maintenant l'exécution du programme de test, nous obtenons l'exception suivante :Exception in thread "main" org.hibernate.transientobjectexception: object references an unsaved transient instance - save the transient instance before flushing: fr.mistra.pgejpav2.jpa.user au niveau des lignes suivantes dans la méthode testcreate() :

15 // Enregistrements Transaction tx = s.begintransaction(); s.persist(e); s.persist(e2); s.persist(u2); tx.commit(); En effet, nous essayons de sauvegarder l'event e liée à l'user u. Du fait de l'association mappée, la table events possède l'identifiant de l'utilisateur lié au travers d'une clé étrangère. Mais l'user associé n'est pas encore sauvegardé, et est donc transient : la clé étrangère ne peut être initialisée à sa juste valeur. C'est la raison pour laquelle Hibernate suggère de "sauvegarder l'instance transiente : fr.mistra.pgejpav2.jpa.user" Il existe deux solutions possibles à ce problème mettre en place une cascade pour que la persistance d'un Event entraine celle du User associé public class

16 @Column(name="events_id") private Integer id; // Autres ( cascade= private User user; public Event() { // Getters et setters rendre persistant l'user u avant de faire appel à s.persist(e) : // Enregistrements Transaction tx = s.begintransaction(); // On sauvegarde u avant e

17 Powered by TCPDF (www.tcpdf.org) Relation many-to-one s.persist(u); s.persist(e); s.persist(e2); s.persist(u2); tx.commit();

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

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

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

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

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

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

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

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

Java Persistence Api. 1. Introduction. 2. Un premier exemple. 3. L application. benoit.charroux@efrei.fr 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

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

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Plus en détail

Applications orientées données (NSY135)

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

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

TP4 : Services Web REST

TP4 : Services Web REST TP4 : Services Web REST Développement d un service REST pour la réservation d un hôtel L objectif de cet exercice est le de veloppement de services REST à pàrtir de clàsses Jàvà pour là recherche et là

Plus en détail

Etude de cas : PGE JEE V2

Etude de cas : PGE JEE V2 Arrivés à ce point du tutoriel, nous savons créer une application Web implémentant la persistance des données. Toutefois, le modèle de cette application était simple et composé d'une unique classe et les

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Le mapping objet relationnel Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Plan de présentation 1. Le modèle relationnel et le modèle objet 2. Le Mapping Objet

Plus en détail

Cours: BD et Environnement Distribuées

Cours: BD et Environnement Distribuées UNIVERSITÉ DE BOURGOGNE UFR Sciences et Techniques Cours: BD et Environnement Distribuées TP 4 - Mapping Objet Relationnel Préparé par: MATTA Elie et al. Copyright 2010-2011, eliematta.com. All rights

Plus en détail

ECLIPSE RCP. Réalisation d'un Browser

ECLIPSE RCP. Réalisation d'un Browser ECLIPSE RCP TP Réalisation d'un Browser Gaël QUEMENER Ifremer Février 2014 Gael.Quemener@ifremer.fr 1/10 Table des matières 1.Intitulé... 3 2.Application Eclipse RCP... 3 3. Ajout d'une vue dans le modèle

Plus en détail

TP6 EJB : Création d'un EJB3 Entité

TP6 EJB : Création d'un EJB3 Entité TP6 EJB : Création d'un EJB3 Entité Objis : nous allons vous faire aimer JAVA - www.objis.com 1 Table des matières Formation EJB - TP 'Développement EJB3 entity avec Eclipse' Propriété du document...3

Plus en détail

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE)

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Sommaire 1. Objectifs...2 2. Création d un nouveau projet J2SE...2 3. Intégration du client Web Service...5 3.1. Description

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

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

Rapport Gestion de projet

Rapport Gestion de projet IN56 Printemps 2008 Rapport Gestion de projet Binôme : Alexandre HAFFNER Nicolas MONNERET Enseignant : Nathanaël COTTIN Sommaire Description du projet... 2 Fonctionnalités... 2 Navigation... 4 Description

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

Institut Supérieur De Gestion De Tunis 3 ème LFIG BAYOUDHI Chaouki

Institut Supérieur De Gestion De Tunis 3 ème LFIG BAYOUDHI Chaouki Exemple JSF EJB et Bean géré I. Enoncé : Cet exemple est une petite application web proposant deux pages web : L une qui affiche un formulaire afin de pouvoir ajouter un livre (AjoutLivre.xhtml), L autre

Plus en détail

La définition de la classe Test est incomplète, pour définir une classe, il faut mettre deux accolades qui contiennent la définition de

La définition de la classe Test est incomplète, pour définir une classe, il faut mettre deux accolades qui contiennent la définition de Ex 1 1- On crée un fichier Test.java qui contient seulement : public class Test Que se passe t'il si on cherche à le compiler? La définition de la classe Test est incomplète, pour définir une classe, il

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

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

ERRATA - MAGASIN VIRTUEL

ERRATA - MAGASIN VIRTUEL ERRATA - MAGASIN VIRTUEL 1 28 juillet 2005 Entre mars et juillet 2005, un certain nombre d'articles sont parus sur [http://tahe.developpez.com]. Ils avaient pour but de présenter le framework Spring aussi

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

CRÉATION DES COMPTES UTILISATEURS

CRÉATION DES COMPTES UTILISATEURS Formation continue Projet tuteuré CRÉATION DES COMPTES UTILISATEURS MOD24 UVSQ SUJET Le contexte du projet est celui du lycée Paul Lapie relatif à l épreuve E4 de l examen du BTS SIO. Il s agit de l application

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

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

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

TOPCASED UML Génération de la couche d accès aux données via Acceleo. Atos Origin Communauté D2I. Version : 1.0.Révision (1) Date : 30/10/2007

TOPCASED UML Génération de la couche d accès aux données via Acceleo. Atos Origin Communauté D2I. Version : 1.0.Révision (1) Date : 30/10/2007 TOPCASED UML Génération de la couche d accès aux données via Acceleo Atos Origin Communauté D2I Version : 1.0.Révision (1) Date : 30/10/2007 Atos Origin Intégration Les Miroirs C Tél. : +33 (0)1 55 91

Plus en détail

Visual Studio.NET et Visual SourceSafe - Part 3

Visual Studio.NET et Visual SourceSafe - Part 3 Visual Studio.NET et Visual SourceSafe - Part 3 VSS et VS.NET en développement collaboratif Dans cette partie, nous verrons comment mettre en place une base SourceSafe sur un serveur afin que plusieurs

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Tests unitaires avec Visual Studio

Tests unitaires avec Visual Studio Tests unitaires avec Visual Studio (source MSDN) Rappels (initiation aux tests unitaires SI6 Tp6) Les tests unitaires offrent aux développeurs une méthode rapide pour rechercher des erreurs de logique

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

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

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

Plus en détail

Introduction. Correspondance Objet - Relationnel. Présupposé. Quelques problèmes du passage Relationnel Objet. 2 paradigmes

Introduction. Correspondance Objet - Relationnel. Présupposé. Quelques problèmes du passage Relationnel Objet. 2 paradigmes Introduction Correspondance Objet - Relationnel Université de Nice Sophia-Antipolis Version 1.0.1 15/9/07 Richard Grin Ce cours explique les problèmes de base qui se posent quand on veut faire correspondre

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

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

PHP - BD. PostgreSQL. Connexion (I) Présentation

PHP - BD. PostgreSQL. Connexion (I) Présentation PHP - BD PostgreSQL S. Lanquetin LE2I Aile sciences de l'ingénieur Bureau G206 sandrine.lanquetin@u-bourgogne.fr Présentation Connexion (I) PostgreSQL s'appuie sur le modèle relationnel mais apporte les

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

EJB3.1 - ORM - Object-Relational Mapping

EJB3.1 - ORM - Object-Relational Mapping EJB3.1 - ORM - Object-Relational Mapping Chapitres traités Association d'une entité Durant cette étude, nous passerons en revue les bases des ORM (Object-Relational Mapping), qui consistent essentiellement

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

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

Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur

Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur TP 8 Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur 8.1 Avant-propos Lors du premier, nous avons découvert le fonctionnement de GWT par l intermédiaire d un exemple simple : gestion

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

TD 15 ème chapitre Bases de données

TD 15 ème chapitre Bases de données TD 15 ème chapitre Bases de données Nous allons travailler dans un premier temps avec le sgbd SQLite qui, à proprement parler, ne s'installe pas vraiment. Les bases de données SQLite tiennent sur un fichier

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

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

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

Annexe du cours Conception des sites web marchands et mobiles

Annexe du cours Conception des sites web marchands et mobiles Conception des sites web marchands et mobiles Nassim BAHRI {contact@nassimbahri.ovh} 1 Novembre 2015 1 Diagramme de séquence système Les cas d'utilisation décrivent les interactions des acteurs avec le

Plus en détail

Atelier 5 A. Le Framework Hibernate

Atelier 5 A. Le Framework Hibernate Atelier 5 A Le Framework Hibernate Introduction Hibernate est un Framework Java de persistance qui permet de faire correspondre des tables de base de données relationnelles avec des objets java simples

Plus en détail

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

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

Ceci n est pas un cours.

Ceci n est pas un cours. Introduction à ASP.NET Partie 2 (traitement des collections de données) Auteurs : Ph. Lacomme (placomme@isima.fr) et R. Phan (phan@isima.fr) Date : juin 2011 Avertissement : Les exemples proposés dans

Plus en détail

AP-5 TD n 2 J2EE 5 novembre 2013

AP-5 TD n 2 J2EE 5 novembre 2013 Objectifs Prérequis Gestion des informations temporaires, sessions et cookies JSP et servlets, mise en place d un contrôleur Java Runtime Environnement (http://www.java.com/fr/download/) (JRE Java 7) IDE

Plus en détail

Documentation de CMS-gen

Documentation de CMS-gen Table des matières GÉNÉRALITÉ... 1 LA ZONE D'ADMINISTRATION... 2 LOGIN SUR LA ZONE D ADMINISTRATION... 2 EDITION DU CONTENU EN LIGNE... 3 LE MODE EDITION... 3 PUBLICATION... 3 SUPPRIMER DES MODIFICATIONS...

Plus en détail

Tp1 Ema EMACS Développement Web

Tp1 Ema EMACS Développement Web Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector l tutorial Interfaces. l Stack

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

Introduction aux méthodes Orientées Objets Troisième partie

Introduction aux méthodes Orientées Objets Troisième partie Introduction aux méthodes Orientées Objets Troisième partie Modélisation avec UML 2.0 Programmation orientée objet en C++ Pré-requis: maitrise des bases algorithmiques (cf. 1 ier cycle), maitrise du C

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

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe...

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... Une classe hérite d'une autre classe par le biais du mot clé extends. Une classe ne peut hériter

Plus en détail

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar Bases de données Ecole Marocaine des Sciences de l Ingénieur Yousra Lembachar Rappel Variables dans SQL Les fonctions d agrégation Les opérateurs ensemblistes Les sous-requêtes SELECT Contraintes statiques

Plus en détail

Cas d'usage C080 - Création d'une vue

Cas d'usage C080 - Création d'une vue Cas d'usage C080 - Création d'une vue Page 1 / 15 1. Cas d'usage 3 1.1. C080 - Création d'une vue 3 1.2. Etape 3 2. Etape 5 2.1. Liste des vues 5 2.2. Créer une vue 6 2.3. Ajouter des zones 7 2.4. Exercice

Plus en détail

XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0

XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0 XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0 Dernière mise à jour : 01/05/2007 Ce plugin a pour but de : Créer la database de vos photos pour XLOBBY, Créer, dans le répertoire "Cache" de Xlobby,

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

M1 informatique Bases de données avancées, première partie Examen nal - octobre 2007

M1 informatique Bases de données avancées, première partie Examen nal - octobre 2007 M1 informatique 2007-08 Bases de données avancées, première partie Examen nal - octobre 2007 Durée de l'épreuve : 2 heures L'usage des polycopiés du cours est autorisé. Tous les autres documents, sous

Plus en détail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

Plus en détail

Acquérir une image à partir d un scanner avec la bibliothèque de fonctions WIAAUT.DLL avec Delphi Table des matières

Acquérir une image à partir d un scanner avec la bibliothèque de fonctions WIAAUT.DLL avec Delphi Table des matières Acquérir une image à partir d un scanner avec la bibliothèque de fonctions WIAAUT.DLL avec Delphi Table des matières Acquérir une image à partir d un scanner avec la bibliothèque de fonctions WIAAUT.DLL...

Plus en détail

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL Les bases de données relationnelles Le langage SQL est un langage universel destiné à travailler sur des bases de données relationnelles. Nous considérerons ici qu'une base

Plus en détail

LES INJECTIONS SQL. Que20. 08 novembre 2015

LES INJECTIONS SQL. Que20. 08 novembre 2015 LES INJECTIONS SQL Que20 08 novembre 2015 Table des matières 1 Introduction 5 2 Qu est-ce qu une injection SQL? 7 3 Premier cas : injection SQL sur une chaîne de caractères 9 3.1 Comment s en protéger?..............................

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

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Projet de Base de données

Projet de Base de données Julien VILLETORTE Licence Informatique Projet de Base de données Année 2007-2008 Professeur : Marinette Savonnet Sommaire I) Introduction II) III) IV) Diagrammes a. Diagramme Use Case b. Diagramme de classes

Plus en détail

UML : Conception Objet

UML : Conception Objet MAI NFE103 Année 2013-2014 UM : Conception Objet F.-Y. Villemin (f-yv@cnam.fr) Plan!!Modèle Objet : Passage à la conception!!instances et iens!!cas d Utilisation!!Diagramme de Séquences!!Diagramme de Collaborations!!Exceptions

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Les Framework Java DWR. Claude Duvallet 1/13. Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Les Framework Java DWR. Claude Duvallet 1/13. Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Les Java DWR Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/ Claude

Plus en détail

Licence Informatique Année 2005-2006

Licence Informatique Année 2005-2006 Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 6 - Correction Héritage Exercice 1 On modélise une application devant servir à l inventaire d une bibliothèque. Elle devra traiter des

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

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011 SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT V 1.0 27 janvier 2011 Ce document présente l'utilisation des plugins dans Tourism System Client. Dans le Client, un plugin

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

Sauvegarder ses données sous Android :! SharedPreferences, SQLite, Files

Sauvegarder ses données sous Android :! SharedPreferences, SQLite, Files Sauvegarder ses données sous Android : SharedPreferences, SQLite, Files Jean-Ferdinand Susini Maître de conférences au CNAM Sources : Wikipedia, developper.android.com Paris, 05/06/2014 Les SharedPreferences

Plus en détail

Quelques exemples de requêtes SQL sur la base de données aviation

Quelques exemples de requêtes SQL sur la base de données aviation Quelques exemples de requêtes SQL sur la base de données aviation Note : divers exercices sont proposés. Leurs corrections se trouvent à la fin du document. Le mot-clé COUNT Combien de modèles d'avion

Plus en détail