Composants et Services Logiciels 23/11/10
TP4 : Java Persistence API (JPA)
Objectif : vous familiariser avec les beans Entité à travers une base de données de gestion de notes. La
BD contient une table Etudiant, une table Matière et une table Note.
1. Créez la base de données « Notes » en utilisant le SGBD Derby fourni avec Glassfish. Pour cela,
aller dans l'onglet Services → Databases → Java DB et cliquez bouton droit dessus « Create
Database ». Normalement elle doit apparaître juste en dessous ensuite.
2. Complétez le script createNotes.sql (qui se trouve sur le WebCampus) pour vous ajouter comme
étudiant et ajoutez aussi quelques notes vous concernant. Executez le script createNotes.sql pour
créer les tables. Pour cela cliquer bouton droit sur la connexion à votre base, « Execute
command » et coller votre script SQL. Faire un « Refresh » de votre base pour les voir apparaitre.
3. Créez le pool de connexion « NotesPool » sur le serveur. Attention il faut remplir la propriété
« DatabaseName », « User » et « Password ». Supprimer la propriété « SecurityMechanism » si
elle est renseignée. Faites un « ping » sur le pool pour s'assurer qu'il est bien configuré puis créez
la ressource JBDC « jdbc/notes » qui référence le pool.
4. Créer un module EJB « NotesDBBeans ».
•Générez les « Entity Class » pour chaque table de la BD dans un package tp4.bd. Pour cela
allez dans « Persistance » → « Entity Classes from Database ».
•Générez un Stateless Session Bean permettant d'interroger la base (« EtudiantManager ») dans
un package tp4.beans. Ce bean proposera un service permettant de récupérer les valeurs des
notes d'un étudiant en fonction de son login. Attention il faut une interface Remote.
5. Créez le client J2SE « NotesClient » permettant de tester le service. Ne Pas oublier le jar « gf-
client.jar ».
Exemple de code pour utiliser un objet de la base :
@PersistenceContext(unitName = "Notes")
EntityManager _em ;
Etudiant etudiant = _em.find(Etudiant.class, login);