Maîtrisez la manipulation d’une session hibernate dans une application J2ee. Comprenez les avantages et inconvénients de 2 techniques classiques : la Servlet d’initialisation et le filtre HTTP. Limitez enfin l’utilisation couteuse de la session hibernate en utilisant une session locale au thread (threadLocal)’. Découvrez la notion de ’conversations longues’ ou encore de ’transactions d’applications’. Comprenez la notion d’objet détaché et sa valeur ajoutée dans les ’conversations longues’
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
Tutoriel Hibernate N°2 : votre première application hibernate
+ de 100 tutoriaux java/jee Objis
Tutoriaux HIBERNATE Objis
Objis, spécialiste formation java depuis 2005
Site hibernate (javadoc, faq)
Documentation (chap. 10) : working with objects
Comprendre les problématiques associées à hibernate en environnement web
Mettre en œuvre Designs patterns avec Hibernate : MVC , DAO, Business Delegate
Créer une couche DAO hibernate
Contexte
Partie 1 : Comprendre le design pattern MVC
Partie 2 : Technique N°1 de manipulation de session hibernate : Servlet d’initialisation
Partie 3 : Technique N°2 de manipulation de session hibernate : filtre http
Partie 4 : Technique N°3 de manipulation de session hibernate : couche service et délégation
30 min.
Vous allez apprendre à mettre en œuvre une des techniques possibles pour gérer les problématiques suivantes :
— PROBLEMATIQUE 1 : récupérer la Session hibernate à partir de la SessionFactory
— PROBLEMATIQUE 2 : fermer la Session hibernate une fois le travail métier terminé
CAS D’UTILISATION :
> Application simple (moins de 10 objets métiers)
> Choix accès direct à la session par le controleur
— ARCHITECTURE : Pas de couche service. Pas design pattern business delegate)
—INCONVENIENT : vous devez fermer la session hibernate ’à la main’.

Au déploiement de l’application, charger une Servlet qui va rendre la SessionFactory disponible dans le contexte de Servlet.
Projet eclipse

Servlet d’initialisation : codage méthode init()

Servlet d’initialisation : configuration web.xml

Controleur : obtenir une session

Controleur : fermer session

test


Corrigé



test


Dans les 2 techniques précédentes (Servlet d’initialisation et filtre http), la couche service est encapsulée dans la couche présentation.
Comment passer la Session à la couche Dao ? Comment utiliser cette même session dans une méthode de la couche Dao ?
Dans ce type de contexte (typique de l’utilisation d’un framework de vue type Struts, webwork), le pattern à préférer est le pattern ThreadLocal : la classe java.lang.ThreadLocal créée une session accessible dans le thread applicatif courant.
Cela est particulièrement utile en environnement multithread, comme applications web.

Dans ce tutoriel, vous avez mis en oeuvre plusieurs techniques de gestion de la Session hibernate en environnement j2ee : la servlet d’initialisation, le filtre et la Session locale au thread (ThreadLocal).
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Hibernate :
Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
Votez pour les prochains tutoriaux à publier
Préparez vos entretiens techniques
Valorisez votre profil / expertise
Identifiez des opportunités d’emploi
Recevez la newsletter objis.com