JPA est une spécification (JSR 317). Afin de pouvoir la mettre en oeuvre , nous allons l’implémenter avec Hibernate.
Télécharger Hibernate core (version 4.3.1 FINAL) . Comprenez les librairies nécessaires à Hibernate pour synchroniser vos objets en mémoire et vos enregistrements en base de données. Découvrez la documentation hibernate. Comprenez les autres modules d’hibernate ainsi que le lien entre hibernate, JPA et EJB3.])
Objis, spécialiste de la formation Java, est heureux de vous offrir ce
tutoriel, extrait de séances pratiques de la formation HIBERNATE dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Prérequis, outils et versions
aucun
Liens utiles
+ de 100 tutoriaux java/jee Objis
Tutoriaux HIBERNATE Objis
Objis, spécialiste formation java depuis 2005
Site hibernate
JAVADOC Hibernate core 4.3.1
FAQ hibernate
Spécifications EJB3 (JSR-220)
Objectifs
Maîtriser l’installation d’Hibernate Core
Comprendre les modules d’hibernate : Annotations, Entitymanager, Tools…
Analysez les librairies obligatoires et facultatives d’hibernate.
Comprendre la relation entre Hibernate, JPA et EJB3
Programme
Partie 1 : définition et historique
Partie 2 : Avantages clés
Partie 3 : téléchargement
Partie 4 : analyse
Durée
40 min.
Qui sommes-nous ?
Partie 1 : définition & historique
Hibernate est un framework de mapping Objet/Relationnel pour applications JAVA (et .NET avec Nhibernate). Supporté par Jboss/RedHat Hibernate vous permet de créer une couche d’accès aux données (DAO) plus modulaire, plus maintenable, plus performante qu’une couche d’accès aux données ‘classique’ reposant sur l’API JDBC ( Voir notre Tutoriel Java N°5 : accès aux données avec API JDBC4 et java 6).
La promesse d’hibernate : libérer le développeur de 95% des taches de programmation classique d’une couche d’accès aux données via JDBC.
Voici quelques atouts d’une implémentation de votre couche d’accès aux données avec JPA par rapport à du ‘jdbc pur’
Partie 2 : avantages
Avantage1 : hibernate génère le code SQL pour vous.
— Pas de requête SQL à écrire
— Pas d’Objet ResultSet à gérer : cycle récupération manuelle ResultSet + Casting de chaque ligne du resultset (type Object) vers un type d’objet métier (Ex : Employe)
— Application plus portable. S’adapte à la base de données cible
Avantage 2 : persistance transparente.
Vous pouvez faire de vos classes métiers des classes persistantes sans ajout de code tiers. C’est là une différence forte et fondamentale vis à vis de EJB2.x qui étaient utilisées dans les années de création d’Hibernate.
Cette différence n’est plus d’actualité avec les EJB3, dont les Spécifications(JSR-220) ont été écrite avec la collaboration de Gavin King et l’équipe d’Hibernate.
Avantage 3 : récupération de données optimisée.
Hibernate fournit plusieurs stratégies pour interroger la base de données. Requête SQL, langage HQL ou Api Criteria, avec des options de fetching et de mise en cache sophistiquées.
Avantage 4 : portabilité du code si changement de base de données.
Hibernate vous permet de changer de base de données cible (ex : remplacer SQL Server par PostGresql) en modifiant un minimum de paramètres de configuration (comme le Dialect).
Quand on sait que de nombreux programme codent ‘en dur’ des requêtes SQL dans le code, celui ci est souvent spécifique à une base de données…
Partie 3 : hibernate ou JPA/EJB3 Entity ?
Hibernate est un produit. JPA est une spécification. EJB3 Entity est une implémentation de la spécification JPA.
S’il est vrai que la valeur ajoutée d’hibernate a diminué avec l’avènement de la spécification JPA et son implémentation EJB3 Entity, notez qu’hibernate reste un choix privilégié pour les développeurs qui :
n’accordent pas une priorité à la portabilité de leur développement
souhaitent profiter des dernières fonctionnalités, non présentes dans spécifications (qui prennent beaucoup de temps à être validées dans le cadre de la Java Community Process).
Notez qu’il est possible de rendre Hibernate compatible avec la norme JPA, en combinant les modules Hibernate core, Hibernate Annotations et Hibernate EntityManager.
Hibernate devient alors un véritable fournisseur JPA, au même titre que ses concurrents EJB3 Entity ou encore Toplink Essentials.
Partie 4: Téléchargement
Allez sur le site du projet : http://hibernate.org/orm/
2 JSR (Java Spécification Request) sont implémentées:
— JSR 220 : implémentation de la norme EJB3
— JSR 317 : implémentation de la norme JPA
Le cœur d’Hibernate est le module Hibernate ORM. C’est celui que nous allons télécharger et analyser dans ce tutoriel. La plupart des autres modules ont besoin de celui-ci.
Cliquez sur le lien Download 4.3.1.Final
Le téléchargement commence
Partie 5: Analyse
Dézippez l’archive dans le répertoire
Remarquez les 3 répertoires présents :
— Répertoire documentation (doc html/pdf multilingue)
— Répertoire project (source)
— Répertoire lib : librairies complémentaires
Répertoire documentation
Répertoire lib
ce répertoire contient 6 sous-répertoire:
required = librairies indispensables
jpa
jpa-metamodel-generator
optional
osgi
envers
Le rôle de chaque Libaririe est disponible sur le tuto hibernate
conclusion:
Dans ce tutoriel, vous avez téléchargé et analysé Hibernate qui nous permettra de mettre en oeuvre JPA