TP2 EJB : Ecriture d'un gestionnaire de comptes bancaire

De $1

Version de 08:13, 24 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Dans ce TP, contrairement au TP1, nous allons écrire une application de gestion de comptes bancaires, mais sans partir de tables pré-existantes. Vous utiliserez un entity bean CompteBancaire et un session bean GestionnaireDeCompteBancaires. Le TP comporte également l'écriture de servlets et de pages jsp pour se connecter, s'identifier, accèder à ses comptes, transférer de l'argent.

Vous travaillerez sur une nouvelle base de données ! Afin de ne pas "casser" celle qui est livrée en exemple (jdbc/sample...)

Création d'une base de donnée "Banque"

Netbeans comprend un outil basique de gestion de SGBD. A partir de l'onglet "services" vous allez ajouter une nouvelle base à la base de données Derby. Ainsi vous n'aurez plus de soucis quant à la création de nouvelles tables, etc.

 

Ecriture d'un entity bean CompteBancaire


Vous allez créer un nouveau projet, à la manière du TP1. Au lieu de créer un entity bean à partir d'une table, vous ferez une simple création d'entity bean.



Chaque compte bancaire possèdera :


  • Un numéro d'identification (la clé primaire), la clé est en mode auto-incrément: utilisez les attributs @Id et @GeneratedValue(strategy=GenerationType.AUTO)
  • Le nom du propriétaire,
  • Le solde du compte.

Comme dans le cours, ajouter une méthode pour initialiser le compte, pour retirer de l'argent, pour en ajouter et pour consulter le solde.



Ecrivez le bean, puis ajoutez au projet un persistence manager, vous prendrez le même que celui du TP1, celui qui est connecté à la base de données jdbc/sample. Ce n'est pas grave si il n'y a pas de table pour les comptes bancaires, vous verrez que le serveur la créera automatiquement lors du premier déploiement du bean

CompteBancaire.

Compilez, déployez. Vérifiez qu'il n'y a pas d'erreur. Vérifiez que la table a bien été créée.




Ecriture d'u session bean façade

Vous allez maintenant écrire un session bean

GestionnaireDeCompteBancaire,

ce sera un session bean stateful. Ce session bean va proposer pour le moment deux fonctionalités :


  • créer un compte bancaire,
  • afficher la liste des comptes bancaires
  • vous ajouterez une méthode creerComptesTest() qui va créer quatre comptes, pour John, Paul, Georges et Ringo, avec les sommes suivantes. Ne faites pas attentions aux numéros de comptes, vous n'avez pas à les préciser puisque vous êtes en clé primaire générée automatiquement.


beatles.jpg


Ecriture d'une servlet comptes et de jsps associées

Rappels:

  1. normalement une servlet ne doit pas faire d'affichage HTML, elle sous-traite ce travail à une page jsp, on utilise pour cela un requestForwarder. Si on veut passer des paramètres d'une servlet vers une jsp on peut soit les ajouter dans la requête avant de forwarder vers la jsp, soit dans la session (dans ce cas, on pourra conserver ce paramètre au travers d'une chaine de forward).
  2. Une JSP ne doit pas faire de java, on utilise du XHTML ou des tags de la librairie JSTL pour itérer sur une collection par exemple.

Voici deux exemples qui effectuent ce type de traitement (la servlet récupère la liste des Manufacturers du TP1 et la passe à une jsp pour l'affichage)


Vous devrez utiliser ce type de conception pour votre application, fini les jsps et les servlets sauvages !

Travail à effectuer:


  • Ecrire une page JSP d'accueil, intitulée creerComptesTest.jsp
    • Cette page contient un bouton créer compte tests. Quand on clique dessus les comptes sont créés puis la page afficheurDeComptes.jsp affiche la collection des comptes dans un tableau HTML. Entre les deux, on est passé par la servlet suivante (que vous devez aussi écrire),
  • Ecrire une servlet comptes qui parle à l'ejb GestionDeCompteBancaire
    • la méthode creerComptesTest() ou la méthode getAllComptes() de cette servlets sous-traitent le travail à l'EJB session, récupèrent les comptes en question et forwardent le résultat à la page jsp afficheurDeComptes.jsp
  • Compilez, testez ! Regardez au fur et à mesure l'état des data dans la table des comptes bancaires.

Ajout de nouvelles fonctionalités

Vous allez maintenant écrire ce qu'il faut pour proposer le transfert d'argent d'un compte bancaire à l'autre.



  • Ecrire une page jsp transfertComptes.jsp qui parle à la servlet comptes et qui propose de chosir deux comptes, d'indiquer la somme à transférer et effectuer le transfert.
  • Vous essaierez également des transferts impossible et voir comment le système se comporte, peut-on se retrouver avec les données dans un état incohérent
  • Si vous avez terminé ce travail, complètez le TP en vous inspirant des pages des banques en ligne réelle pour la gestion des comptes.