Hibernate 3

Introduction

Hibernate est un outil de persistanc objet-relationel. Concrètement, cela signifi que ce dernier prend en charge l’enregistrement des variables (les valeures entières, les chaines de caractères, …) dans une base de données. Cela simplifi considérablement la charge de travail qui incombe au programmeur. Ce « Framework » en est à sa troisième versions et est devenu une référence dans son domaine.

Le libre « Hibernate 3.0 – Gestion optimale de la persistance dans les application Java/J2EE » propose de comprendre le fonctionnement, ainsi que toutes les subtilités de cet outil.

Nous allons voir un résumé, chapitre par chapitre du livre.

1.Persistance et mapping objet-relationnel

L’auteur commence le livre par un historique sur les outils de persistance. Ainsi, nous comprenons qu’il existe plusieurs outils concurrents : JDO, les « entity beans » de EJB, iBatis, … cependant, celles-ci n’ont pas atteind le degré de simplification et de qualité que Hibernate 3.

Cependant, pour comprendre les tenants et aboutissants de la persistance, un exemple est proposé en code SQL. On y voit que ce qui est lourd et contrégnant en SQL devient simple et efficace en Hibernate, notamment via le design pattern « Data Access Object » (DAO).

2.Classes persistantes et session Hibernate

Viens ensuite le moment de d’écrire une première application, afin de savoir exactement comment configurer Hibernate via ses fichiers de configuration, comment se déroule le cycle de vie des instances, etc …

3.Métadonnées et mapping des classes métier

Nous saurons comment s’effectue la correspondance entre les objets Java et les tables de la base de données. La partie la plus subtile concernera les associations entre les entités.

4.Héritage, polymorphisme et associations ternaires

Le chapitre suivant enchaine sur l’héritage et le polymorphisme. En effet, on s’aperçoit à travers les exemples donnés de la souplesse apportée par Hibernate3. Il est capable de s’adapter meme aux modélisations les plus exotiques, et l’écriture des fichiers de configurations doit se révéler de plus en plus fine.


5.Méthodes de récupération d’instances persistantes

Viens ensuite un élément crutiale, à la fois pour l’écriture des classes de « Data Access Object » (DAO) et les performances : la récupération des instances persistantes (ce sont les objets sauvegardés dans la base de données). Vous y découvrirez dans un premier temps des techniques de récupération des objets via HQL, un langage de requète similaire à SQL mais orienté objet, ainsi que l’API Criteria pour effectuer ses requete via du code Java.


On y voit également les subtilités de la configuration, afin d’optimiser le chargement des instances persistantes.


6.Création, modification et suppression d’instances persistantes

Ensuite, nous apprendrons à créer/modifier/supprimer des instances persistantes. Il s’agit d’un élément toujours complexe à gérer car il est souvent difficile de savoir si un objet est persistant ou non.

Les transactions y sont également abordées avec une explication très détaillée.


7.Gestion de la session Hibernate

Alors que vous commencerez à savoir utiliser Hibernate, l’auteur poursuit par l’intégration d’Hibernate face à différents contexte : les applications web, la gestions des transactions dans un environnement critique, les logiciels à interface graphique, …etc.

La gestion d’hibernate est notamment très fine à mettre en œuvre dans un environnement web car il faut pouvoir concerver sa session hibernate à travers la navigation du client (c’est elle qui contient toute la mémoire cache des instances persistantes).


8.Fonctionnalités de mapping avancées

Cet avant dernier chapitre nous expose plusieurs accessoires fournis avec Hibernate. Certains d’entre eux pourraient par hasard vous intéresser : l’export des instances persistantes au format XML, l’utilisation des formules mathématiques de la base de données, …


9.L’outillage d’Hibernate

Finalement, la dernière partie traite des Pools de connexion (ouverture de la base de données via un serveur d’application ou une librairie externe). Cela permet de gagner en performance car l’ouverture de la base de données est un processus couteux qu’il faut anticiper au plus tot, et il faut réutiliser les instances existantes au maximum. Il en sera de meme pour la gestion du cache des instances persistances, car, plus on garde de données en mémoire, et moins Hibernate aura besoin d’intérroger la base de données.

Les explications continuent sur XDoclet et les annotations. Ces deux systèmes permettent de se passer de fichier de configuration, car les paramètres sont inclus dans le code. L’avantage pour le programmeur est d’avoir un code plus facile à lire.

Enfin, les explications terminent avec JBoss-IDE, un environnemnent de développement basé sur Eclise, et qui propose de nombreuses fonctionnalités intéressantes pour le serveur d’application JBoss et Hibernate.


Conclusion

L’approche qu’a choisi l’auteur est pragmatique, car chaque nouveau concepts vu dans le livre sera suivi par une mise en pratique. L’exemple suivi tout au long du livre est la modélisation d’une ligue de football. Cette approche peut se révéler ainsi complémentaire à l’ouvrage de référence sur le sujet « Hibernate In Action », dont l’auteur a également participé, qui se révèle plutot comme un référentiel.

Meme si les concepts abordés ont parfois besoin de temps pour etre assimilés, Anthony Particio sait trouver des mises en pratique claires et précises afin de pouvoir réutiliser les concepts.




Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

FAQ
JavaRésoudre les erreurs courantes avec Struts3/31/06
Erreur JDBC : Mandriva 2006 & configuration MySQL pour utilisation avec un driver JDBC3/1/06
Comment lire et écrire un fichier Microsoft Excel en Java ?2/1/06
JavaQu'est ce que J2ME(Java 2 Platform Micro Edition)?1/20/06
JavaQu'est ce que J2EE(Java 2 Platform Enterprise Edition)?1/20/06

Videos
EclipseVisual Editor : Plugin de conception d'interface graphique sous Eclipse5/5/06
EclipseEclipseUML : Les diagrammes de classes intégrés à Eclipse5/5/06
EclipseAzzurri - Modéliser vos bases de données via Eclipse5/4/06

Actualités
SunSun Microsystems en forme !8/4/08
SunOpenDS un ldap 100% java7/24/08
SunSun et Fujitsu annoncent un nouveau Sparc647/16/08
SunVisualVM, un outil de surveillance des applications Java7/10/08
SunSun, Microsoft et Cisco contre le DNS Cache Poisoning7/9/08

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée