vers l'accueil formulaire de contact

Tutoriel hibernate N°10 : gestion session Hibernate dans application j2ee

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005 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

Prérequis, outils et versions

- Tutoriel Hibernate N°2 : votre première application hibernate

Liens utiles


- + 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

Objectifs

- 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

Programme

- 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

Durée

30 min.

Contexte

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’.

Partie 1 : comprendre MVC

PNG - 41.6 ko
tutoriel-hibernate-3-architecture-application-web-0

Partie 2 : technique 1 (servlet d’initialisation)

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

Projet eclipse

- 

PNG - 10.9 ko
tutoriel-gestion-session-hibernate-environnement-jee-3

- 

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

PNG - 19.8 ko
tutoriel-gestion-session-hibernate-environnement-jee-5

- 

Servlet d’initialisation : configuration web.xml

PNG - 5 ko
tutoriel-gestion-session-hibernate-environnement-jee-4

- 

Controleur : obtenir une session

PNG - 7.5 ko
tutoriel-gestion-session-hibernate-environnement-jee-6

- 

Controleur : fermer session

PNG - 9.3 ko
tutoriel-gestion-session-hibernate-environnement-jee-7

- 

test

PNG - 14.7 ko
tutoriel-gestion-session-hibernate-environnement-jee-5bis

- 

PNG - 49 ko
tutoriel-gestion-session-hibernate-environnement-jee-5ter

Corrigé

Zip - 4.5 Mo
demoSessionHibernateWeb1

- 

Zip - 4.9 Mo
demoSessionHibernateWeb1

Partie 2 : technique 2 (filtre http)

PNG - 13.7 ko
tutoriel-gestion-session-hibernate-environnement-jee-8

- 

PNG - 7.6 ko
tutoriel-gestion-session-hibernate-environnement-jee-9

- 

PNG - 17.6 ko
tutoriel-gestion-session-hibernate-environnement-jee-10

test

PNG - 15.6 ko
tutoriel-gestion-session-hibernate-environnement-jee-11

- 

PNG - 45.5 ko
tutoriel-gestion-session-hibernate-environnement-jee-10bis

Partie 3 : technique 3 (Session locale au thread)

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.

PNG - 103 ko
tutoriel-hibernate-3-architecture-application-web-2

Conclusion

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).

Prochaine formation HIBERNATE

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Hibernate :

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005

Pour aller plus loin : le réseau Objis

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