Cours "Bases de données avancées"

Outils de mapping

Home (Contact)

Cette année vous allez étudier l'outil Hibernate qui est l'outil open source le plus utilisé actuellement. De plus il a l'avantage d'avoir inspiré en partie le traitement de la persistance dans la future norme EJB 3 en cours d'élaboration. L'apprentissage de cet outil vous sera donc certainement très utile si vous écrivez une application Java qui utilise une base de données.


Installer Hibernate

Tout est expliqué au début du tutoriel que vous allez suivre pendant ce TP. Commencez par récupérer Hibernate 3 sur le site d'Hibernate en http://www.hibernate.org/30.html. Prenez la dernière version "Hibernate Core" de production (3.0.5 à la date du 3 novembre 2005). Il y a un site mirroir à Paris.

J'ai récupéré pour vous une version 3.0.5 en local. Vous pouvez commencer le tutoriel pendant que vous décompactez l'archive récupérée. Comme vous n'aurez besoin que de quelques fichiers jar dans cette archive, vous pouvez aussi utiliser un outil de désarchivage pour ne récupérer que ces fichiers jar (la liste vous est donnée dans le tutoriel). Dans le répertoire lib il y a les fichiers jar nécessaires à l'utilisation de Hibernate ; seul le fichier hibernate3.jar se trouve dans la racine de l'archive.

L'installation est simple. Installez une arborescence Java pour développer des applications : un répertoire racine dans lequel vous créez des répertoires src, bin (le fichier build.xml donné dans le tutoriel remplace le répertoire classes habituel par un répertoire bin qui joue le même rôle) et lib. Placez les jar de Hibernate dans le répertoire lib, y compris hibernate3.jar.


Tutoriel Hibernate

Le plus simple pour débuter avec Hibernate est de suivre le tutoriel du 2ème chapitre du manuel de référence de Hibernate (tutoriel sur le site Hibernate). Attention, pour "faire plus vrai", vous devrez mettre obligatoirement toutes les classes dans un paquetage, par exemple le paquetage unice ou event. Vous aurez donc à modifier un peu les sources des classes java et aussi les fichiers de configuration.

N'oubliez pas d'apdapter le tutoriel à votre base Oracle en modifiant le fichier de configuration de Hibernate :

Pour faciliter la mise au point des programmes et la recherche des erreurs, il est indispensable d'enregistrer les informations envoyées par log4j (un logger). Pour cela vous mettrez ce fichier log4j.properties dans le répertoire src (il sera copié dans le répertoire bin par ant). Parcourez ce fichier pour deviner où seront enregistrées les informations pendant l'exécution de Hibernate.


Application Hibernate

En vous appuyant sur le code qui vous a été donné au début du TP sur la correspondance objet-relationnelle (vous devrez reprendre au moins la même arborescence d'héritage pour les articles) écrivez une application de facturation pour un magasin qui vend des articles de papeterie.

Cette application devra offrir à l'utilisateur une interface graphique pour saisir et imprimer une facture pour un client qui vient d'acheter des articles du magasin. La base de données des clients, des articles et des factures sera gérée par Oracle. Cette application constituera le projet qui comptera pour le contrôle continu de ce cours. Le projet devra être rendu au plus tard un mois à partir de la date de ce TP, c'est-à-dire avant le 4 décembre minuit. L'apprentissage et la bonne assimilation des concepts et savoir-faire liés à Hibernate fait partie de ce projet. Dans cet apprentissage vous rencontrerez la plupart des concepts étudiés depuis le début de ce cours.

Inutile de donner une interface graphique complexe pour cette application mais il serait étonnant de ne pas y trouver une JTable. Vous serez jugé essentiellement sur la partie "persistance des données".

L'application devra obligatoirement comporter une situation où vous aurez évité le problème des "N + 1 selects". Le guide du programmeur devra détailler cette situation et expliquer comment vous avez résolu le problème. Un projet qui ne respecte pas cette consigne aura nécessairement une mauvaise note, quel que soit le reste du projet.

Un plus important (et même très important, presque indispensable) serait l'utilisation de DAOs.

Vous pourrez supposer que les types d'articles vendus sont fixes. Vous pourrez aussi supposer que les données sur les produits sont déjà dans la base (vous pouvez écrire du code Java pour initialiser la base au démarrage de l'application) mais vous écrirez du code pour saisir de nouveaux articles pour un des types d'article vendus (par exemple, pour saisir les données sur un nouveau stylo si le magasin vend des stylos).

Les modalités pour rendre ce projet et les consignes à suivre absolument sont détaillées sur cette page. L'idée est que le correcteur puisse tester rapidement votre application dans son propre environnement, depuis sa propre machine. Le correcteur testera votre application avec le SGBD Oracle ; merci donc de fournir un fichier de configuration Hibernate adapté à Oracle.



Retour