T M E 6 A p p l i c a t i o n d e v e n t e e n l i g n e



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

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)

Applications des patrons de conception

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmation par composants (1/3) Programmation par composants (2/3)

Compte Rendu d intégration d application

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

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

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

RMI le langage Java XII-1 JMF

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Premiers Pas en Programmation Objet : les Classes et les Objets

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Chapitre 2. Classes et objets

1/ Présentation de SQL Server :

I4 : Bases de Données

Héritage presque multiple en Java (1/2)

Application web de gestion de comptes en banques

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

Mise en œuvre des serveurs d application

Compte-rendu de projet de Système de gestion de base de données

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

Importation des données dans Open Office Base

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Débuter avec OOo Base

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

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

Alfstore workflow framework Spécification technique

OpenPaaS Le réseau social d'entreprise

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Bases de Données relationnelles et leurs systèmes de Gestion

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

contact@nqicorp.com - Web :

Sage CRM. 7.2 Guide de Portail Client

Construction d'une application MVC distribuée avec Spring Remoting. Partie 1 : HttpInvoker, Hessian, Burlap, RMI

Développement Web - Object Relational Mapping and Hibernate

Gestion du service des enseignements

Applet pour visualiser les variables «automate» notifiées

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Modèle d Administration des Systèmes Distribués à Base de Composants.

1.Choix technologiques

Projet gestion d'objets dupliqués

Maîtriser le menu contextuel dans un OfficeBean

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

TP SIN Programmation sur androïde Support : eclipse

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Le Langage De Description De Données(LDD)

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

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

Java Naming and Directory Interface

Application 1- VBA : Test de comportements d'investissements

2 Chapitre 1 Introduction

Microsoft infrastructure Systèmes et Réseaux

et Groupe Eyrolles, 2006, ISBN :

Remote Method Invocation Les classes implémentant Serializable

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

Généralités sur le Langage Java et éléments syntaxiques.

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Création d une application JEE

Création d objet imbriqué sous PowerShell.

Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad:

contact@nqicorp.com - Web :

Tutoriel d installation de Hibernate avec Eclipse

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Corrigé des exercices sur les références

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Java 7 Les fondamentaux du langage Java

Web Tier : déploiement de servlets

Architecture Orientée Service, JSON et API REST

Initiation à JAVA et à la programmation objet.

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

INFRASTRUCTURES & RESEAUX

Modélisation et Gestion des bases de données avec mysql workbench

Les frameworks au coeur des applications web

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Programmation Objet - Cours II

Composants Logiciels. Le modèle de composant de CORBA. Plan

LES ACCES ODBC AVEC LE SYSTEME SAS

AssetCenter Notes de version

Intergiciel - concepts de base

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Algorithmique & programmation

Java DataBaseConnectivity

TP1 : Initiation à Java et Eclipse

Conception de serveurs d'applications ouverts

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

J2EE - Introduction. Développement web - Java. Plan du chapitre

Import des utilisateurs depuis Sconet et STSweb - mise à jour du 04/10/06

Composants logiciels Exemples : Java Beans, Enterprise Java Beans

A. Introduction. Chapitre 7

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Remote Method Invocation (RMI)

Transcription:

T M E 6 A p p l i c a t i o n d e v e n t e e n l i g n e 1 Implémentation des bases de données clients et produits L'objet des TME 6 et 7 est d'implémenter une application de vente de produits en ligne à l'aide des EJB. Cette application s'appuie sur deux bases de données : la base de ses clients et la base de ses produits. La première stocke les coordonnées des clients ainsi que la somme des montants d'achats qu'ils ont effectué sur le site. La seconde stocke la liste des produits accompagnés de leur description et de leur quantité en stock. La gestion de chacune de ces bases sera effectuée à l'aide d'un couple : session bean, entity bean, à la manière de l'application HelloFortune. L'entity bean permet l'accès à la base de données, le session bean contient les procédures métier de gestion de celle ci : ajout, suppression, etc... d'élément. 1. E N T I T Y B E A N S Il faut noter que les entity beans utilisés seront CMP comme dans le cas de l'exemple HelloFortune. Dans un premier temps, les clés primaires ne seront pas autogénérées. Par contre dans un second temps, une fois que les deux bases de données et leurs beans entity et session auront été testés, il faudra modifier l'application pour que les clés des bases de données soient autogénérées. Pour que les clés primaires soient auto générées il faut modifier les entity beans et le fichier descripteur de déploiement comme décrit à la fin du document TD TME 5 : modifier les méthodes de création du bean, modifier le descripteur ejb jar.xml, fournir le fichier jbosscmp jdbc.xml, qui décrit le mapping entre entity bean et champs de la base de données, correctement initialisé à l'aide des descriptions des tables qui sont données par la suite Par ailleurs, chaque instance d'entity bean correspond à un enregistrement dans une base de données. Pour supprimer cet enregistrement il faut appeler la méthode «remove» de l'entity bean. Par exemple dans le cas de l'entity bean Fortune : // récupération d'un enregistrement dans la base 1/6

Fortune fortune = home.findbyprimarykey (1); // suppression d'un enregistrement dans la base fortune.remove(); 2. B A S E D E D O N N É E S C L I E N T S La base de données client correspond à une table dans la base de données par défaut dans laquelle travaille Jboss. Cette table a la structure suivante : nom de la table : clients Nom du champs index nom prénom email montant INTEGER DOUBLE Type SQL La clé primaire de la base est le champ «index». Le montant correspond à la somme que le client a déjà dépensé sur le site lors de précédents achats, plus il est élevé plus le client a droit à des avantages. Dans le cas où la clé est autogénérée, le nom de la table et celui des champs ainsi que leurs types SQL sert à compléter le fichier jbosscmp jdbc.xml qui effectue le mapping entre l'entity bean et la base de données. On s'inspirera du fichier jbosscmp jdbc.xml donné dans l'énoncé du TD 5 (dernière partie : clé auto générée). Le nom de l'ejb est donné dans le paragraphe qui suit. Le nom des champs («field») est le même que celui de colonnes («column»). Entity Bean L'entity bean sera nommé ClientBean, son interface d'accès Client et son interface home ClientHome. L'interface Client sera la suivante : public interface Client extends EJBObject public Integer getindex () 2/6

public String getnom() public String getprenom() public String getemail() public Double getmontant() public void setmontant (Double nouveaumontant) L'interface ClientHome sera la suivante : public interface ClientHome extends EJBHome public Client create (Integer index, String nom, String prenom, String email, Double montant) throws CreateException, RemoteException; public Client findbyprimarykey (Integer index) public Collection findbynomprenom (String nom, String prenom) la méthode create prend un montant, bien que en théorie nul, puisque le client est créé et donc nouveau. En effet on pourrait, dans le cas d'un parrainage par exemple, donner des «points d'avance» à un nouveau client. On développera aussi les interfaces locales de l'entity bean ClientBean. Dans le fichier de description de déploiement ejb jar.xml : les champs du bean auront les noms des champs de la table l'abstract schéma aura le nom de la table On pourra tester l'entity bean Client à l'aide d'un programme de test proche de celui de l'entity bean Fortune, sauf qu'il faudra créer à l'aide de l'interface ClientHome des enregistrements dans la base de données avant de faire des recherches. En effet la base de données n'est plus créée à l'aide des scripts SQL vus dans le cas ou la clé n'est pas générée automatiquement. Session Bean Le session bean est nommé GestionClient, il doit permettre de gérer la base des clients. Son interface est la suivante : public interface GestionClient extends EJBObject public void addclient (String nom, String prenom, String email, Double montantinitial) 3/6

public void delclient (Client client) public Client getclient (String nom, String prenom) L'interface GestionClientHome est du même type que celle HelloHome ne contenant que la méthode de création du bean. Le programme du test de GestionClient du session pourra s'inspirer de celui de test du bean Hello. On développera aussi les interfaces locales du bean GestionClientBean. On développera un programme de test utilisant les 3 méthodes du session bean. 3. B A S E D E D O N N É E S P R O D U I T S La base de données des produits est gérée de la même manière que celle des clients. Un entity bean donne accès à la base tandis que le session bean encapsule les procédures métier de gestion. La base de données des produits correspond à la table suivante dans la base de données par défaut dans laquelle travaille Jboss : nom de la table : produits Nom du champs codeproduit nom couleur stock prix INTEGER INTEGER DOUBLE Type SQL La clé primaire de cette table est le champ codeproduit. Une deuxième entrée «<entity>» doit être ajoutée au fichier jbosscmp jdbc.xml, de la même manière que pour les données des clients, en suivant la description de la table fournie. Entity Bean L'entity bean donnant accès à la base de produits est nommé ProduitBean, son interface métier se nomme Produit et son interface home ProduitHome. Elles contiennent les méthodes 4/6

suivantes : interface Produit : public interface Produit extends EJBObject public Integer getcodeproduit () public String getnom() public String getcouleur() public Double getprix() public void setprix(double prix) public Integer getstock () public void setstock (Integer stock) interface ProduitHome : public interface ProduitHome extends EJBHome public Produit create (Integer codeproduit, String nom, String couleur, Double prix, Integer stock) throws CreateException, RemoteException; public Produit findbyprimarykey (Integer) public Collection findbynomcouleur (String nom, String couleur) On développera aussi les interfaces locales de l'entity bean ProduitBean. Session Bean Le session bean de gestion des produits est nommé : GestionProduitBean. Son interface métier est GestionProduit et son interface Home, GestionProduitHome. Interface GestionProduit : public interface GestionProduit public void addproduit (String nom, String couleur, Double prix, Integer stock) public void delproduit (Produit produit) public Produit trouveproduit (String nom, String couleur) public Collection listeproduitsenstock () 5/6

La méthode «listeproduitsenstock()» retourne la liste des produits dont le stock n'est pas nul. On développera aussi les interfaces locales du session bean GestionProduitBean. On développera un programme de test utilisant les 4 méthodes du session bean. 6/6