SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
1
Intégration du Framework Hibernate
1. Introduction
Travailler dans les deux univers que sont l'orienté objet et la base de données relationnelle
peut être lourd et consommateur en temps dans le monde de l'entreprise d'aujourd'hui.
Hibernate est un outil de Mapping objet/relationnel pour le monde Java. Le terme Mapping
objet/relationnel (ORM) décrit la technique consistant à faire le lien entre la représentation
objet des données et sa représentation relationnelle basée sur un schéma SQL.
Le but d’Hibernate
 Hibernate s'occupe du transfert des objets Java dans les tables de la base de
données. En plus, il permet de requêter les données et propose des moyens de les
récupérer. Il peut donc réduire de manière significative le temps de développement
qui aurait été autrement perdu dans une manipulation manuelle des données via SQL
et JDBC.
 Le but d'Hibernate est de libérer le développeur de 95 pourcent des tâches de
programmation liées à la persistance des données communes. Hibernate assure la
portabilité de votre application si vous changer de SGBD. Hibernate propose au
développeur des méthodes d’accès aux bases de données plus efficace ce qui devrait
rassurer les développeurs.
 Hibernate permet d’assurer la persistance des objets de l’application dans un
entrepôt de données. Cet entrepôt de données est dans la majorité des cas une base
de données relationnelle, mais il peut être un fichier XML. Le Mapping des objets est
effectuée par Hibernate en se basant sur des fichiers de configuration en format
texte ou souvent XML.
Le Framework Hibernate touche la couche DAO (Data Acces Object) = la couche d’accès à
la base de données.
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
2
1. Mise en œuvre
Création d’un nouveau projet java simple sous
Eclipse. Le projet va être sous l’arborescence
suivante :
Le projet va être organisé sous forme de
package, chaque package représente un
niveau d’une couche.
Il existe déjà 3 couches :
 Couche présentation : c’est la classe
main pour le moment qui teste les
fonctionnalités du programme.
 Couche métier : classe qui s’occupe
des traitements mais pour le moment
c’est une classe qui jour le rôle
d’intermédiaire entre présentation et
le dao.
 Couche DAO : couche d’accès aux
données qui va implémenter les
différentes méthodes CRUD : ajout,
modification, suppression et
recherche…
 DTO : Data Transfert Object est un
objet de transfert de données
circulent sur toutes les couches.
Package def.hibernate.dto
On commence à créer la classe de persistance, la classe Produit.java
Package def.dao DAO
Package def.dto DTO
Package def.presentation
Les librairies : ensemble de fichier .jar
Fichier XML de configuration Hibernate
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
3
l
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
4
On créée le fichier de Mapping Hibernate correspond à la classe Produit. On doit créer pour
chaque entité persistance une classe java et un fichier de Mapping .hbm.xml.
Package def.hibernate.dao
On créé l’interface qui va définir les différentes méthodes qu’on va implémenter dans la
couche DAO. Notre classe doit contenir les principales fonctions : ajout, modification,
suppression et recherche. L’interface doit être nommée sous la forme : IProduitDAO
On doit créer après l’implémentation de cette interface.
On nomme la nouvelle implémentation ProduitDAOImpl qui implémente l’interface
IProduitDAO. Elle doit implémenter toutes les méthodes définit dans l’interface.
Public class ProduitDAOImpl implements IProduitDAO
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
5
On analyse une des méthodes implémentée : insertProduit
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
6
La méthode est une fonction privée qui ne renvoie rien mais qui prends en paramètre l’objet
produit chargé pour pouvoir l’enregistrer dans la base de données.
On ouvre une session à la base de données à l’aide de l’objet sessionFactory de Hibernate.
On créée une transaction. A l’aide de la méthode save ou saveOrUpdate de hibernate, on
fait insérer un nouveau produit dans la base de données. Pour finaliser la transaction, il faut
comité et fermer la session à la fin.
Package def.hibernate.métier
On définit l’interface de la couche métier sous le nom IProduitMetier ou IProduitService.
On implémente les méthodes de cette interface dans la classe ProduitServiceImpl.
La classe implémentation va contenir juste l’appel aux méthodes de la classe DAO.
Cette classe va jouer l’intermédiaire entre la couche présentation et la couche DAO.
Expliquant l’exemple de la méthode insertProduit. On créée un objet produitDao instance de
la classe ProduitDAOImpl pour pouvoir accéder aux méthodes de cette dernières. A travers
cet objet on appelle la méthode insert produit comme suit :
produitDao.insertProduit (produit) ;
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
7
Package def.hibernate.util
Dans ce package, on va créer une classe secondaire qui va juste jouer le rôle d’un utilitaire
pour pouvoir lire le fichier de configuration de Hibernate.
Il y aura une création de session sessionFactory de Hibernate pour pouvoir accéder et lire le
fichier de configuration hibernate.cfg.xml.
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
8
Le fichier de configuration de Hibernate hibernate.cfg.xml
On créée un fichier xml sous le nom de hibernate.cfg.xml sous la racine du projet. C’est le
fichier de configuration de Hibernate.
Le fichier contiendra la configuration des données liées à la base comme le driver, url, le
login et le mot de passe. Le fichier contient aussi l’appel à la classe JDBCTransactionFactory
de Hibernate, définit le dialect Mysql qui est utilisé. Le plus important c’est la définition d
fichier de Mapping produit.hbm.xml. A chaque fois qu’on crée un nouveau fichier de
Mapping, une ligne sera ajoutée dans ce fichier.
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
9
Package def.hibernate.presentation
Pour le moment, il n’y a pas d’interface de présentation. On va créer une classe principale
main pour pouvoir tester les différentes méthodes déjà implémentées.
Utilisation des annotations
Vu que l’écriture des fichiers de Mapping n’est mas aussi facile, il y a trop risque d’erreur.
On peut remplacer ces fichiers par les annotations dans les classes persistantes.
La classe devient comme suit :
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
20 janvier
2015
10
Il y aura une petite modification dans le fichier de configuration d’hibernate, on ne définit
plus les fichiers hbm.xml mais on définit les classes modèles .java

Weitere ähnliche Inhalte

Was ist angesagt?

J2eeintro
J2eeintroJ2eeintro
J2eeintro
medbmb
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 

Was ist angesagt? (20)

Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
J2ee
J2eeJ2ee
J2ee
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Spring
SpringSpring
Spring
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Tutoriel J2EE
Tutoriel J2EETutoriel J2EE
Tutoriel J2EE
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
3 Jsf
3 Jsf3 Jsf
3 Jsf
 
Struts
StrutsStruts
Struts
 

Andere mochten auch

Enabling Continuous Delivery For Major Retailer using open source Jenkins
Enabling Continuous Delivery For Major Retailer using open source JenkinsEnabling Continuous Delivery For Major Retailer using open source Jenkins
Enabling Continuous Delivery For Major Retailer using open source Jenkins
Masood Jan
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
MRamo2s
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 

Andere mochten auch (20)

Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASD
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
SerieBoucle pour
SerieBoucle pourSerieBoucle pour
SerieBoucle pour
 
Enabling Continuous Delivery For Major Retailer using open source Jenkins
Enabling Continuous Delivery For Major Retailer using open source JenkinsEnabling Continuous Delivery For Major Retailer using open source Jenkins
Enabling Continuous Delivery For Major Retailer using open source Jenkins
 
Agl2012
Agl2012Agl2012
Agl2012
 
Les Structures de données
Les Structures de donnéesLes Structures de données
Les Structures de données
 
Informatiques bac scientifiques
Informatiques bac scientifiquesInformatiques bac scientifiques
Informatiques bac scientifiques
 
Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programme
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programme
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 

Ähnlich wie Framework Hibernate

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
Génération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTOGénération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTO
guested7f6
 

Ähnlich wie Framework Hibernate (20)

Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Springioc
SpringiocSpringioc
Springioc
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Génération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTOGénération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTO
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Mise en place du Chattoon en PHP
Mise en place du Chattoon en PHPMise en place du Chattoon en PHP
Mise en place du Chattoon en PHP
 
575
575575
575
 
Apprendre J2EE
Apprendre J2EEApprendre J2EE
Apprendre J2EE
 
Hibernate
HibernateHibernate
Hibernate
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataFormation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 

Kürzlich hochgeladen

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 

Kürzlich hochgeladen (13)

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 

Framework Hibernate

  • 1. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 1 Intégration du Framework Hibernate 1. Introduction Travailler dans les deux univers que sont l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps dans le monde de l'entreprise d'aujourd'hui. Hibernate est un outil de Mapping objet/relationnel pour le monde Java. Le terme Mapping objet/relationnel (ORM) décrit la technique consistant à faire le lien entre la représentation objet des données et sa représentation relationnelle basée sur un schéma SQL. Le but d’Hibernate  Hibernate s'occupe du transfert des objets Java dans les tables de la base de données. En plus, il permet de requêter les données et propose des moyens de les récupérer. Il peut donc réduire de manière significative le temps de développement qui aurait été autrement perdu dans une manipulation manuelle des données via SQL et JDBC.  Le but d'Hibernate est de libérer le développeur de 95 pourcent des tâches de programmation liées à la persistance des données communes. Hibernate assure la portabilité de votre application si vous changer de SGBD. Hibernate propose au développeur des méthodes d’accès aux bases de données plus efficace ce qui devrait rassurer les développeurs.  Hibernate permet d’assurer la persistance des objets de l’application dans un entrepôt de données. Cet entrepôt de données est dans la majorité des cas une base de données relationnelle, mais il peut être un fichier XML. Le Mapping des objets est effectuée par Hibernate en se basant sur des fichiers de configuration en format texte ou souvent XML. Le Framework Hibernate touche la couche DAO (Data Acces Object) = la couche d’accès à la base de données.
  • 2. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 2 1. Mise en œuvre Création d’un nouveau projet java simple sous Eclipse. Le projet va être sous l’arborescence suivante : Le projet va être organisé sous forme de package, chaque package représente un niveau d’une couche. Il existe déjà 3 couches :  Couche présentation : c’est la classe main pour le moment qui teste les fonctionnalités du programme.  Couche métier : classe qui s’occupe des traitements mais pour le moment c’est une classe qui jour le rôle d’intermédiaire entre présentation et le dao.  Couche DAO : couche d’accès aux données qui va implémenter les différentes méthodes CRUD : ajout, modification, suppression et recherche…  DTO : Data Transfert Object est un objet de transfert de données circulent sur toutes les couches. Package def.hibernate.dto On commence à créer la classe de persistance, la classe Produit.java Package def.dao DAO Package def.dto DTO Package def.presentation Les librairies : ensemble de fichier .jar Fichier XML de configuration Hibernate
  • 4. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 4 On créée le fichier de Mapping Hibernate correspond à la classe Produit. On doit créer pour chaque entité persistance une classe java et un fichier de Mapping .hbm.xml. Package def.hibernate.dao On créé l’interface qui va définir les différentes méthodes qu’on va implémenter dans la couche DAO. Notre classe doit contenir les principales fonctions : ajout, modification, suppression et recherche. L’interface doit être nommée sous la forme : IProduitDAO On doit créer après l’implémentation de cette interface. On nomme la nouvelle implémentation ProduitDAOImpl qui implémente l’interface IProduitDAO. Elle doit implémenter toutes les méthodes définit dans l’interface. Public class ProduitDAOImpl implements IProduitDAO
  • 5. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 5 On analyse une des méthodes implémentée : insertProduit
  • 6. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 6 La méthode est une fonction privée qui ne renvoie rien mais qui prends en paramètre l’objet produit chargé pour pouvoir l’enregistrer dans la base de données. On ouvre une session à la base de données à l’aide de l’objet sessionFactory de Hibernate. On créée une transaction. A l’aide de la méthode save ou saveOrUpdate de hibernate, on fait insérer un nouveau produit dans la base de données. Pour finaliser la transaction, il faut comité et fermer la session à la fin. Package def.hibernate.métier On définit l’interface de la couche métier sous le nom IProduitMetier ou IProduitService. On implémente les méthodes de cette interface dans la classe ProduitServiceImpl. La classe implémentation va contenir juste l’appel aux méthodes de la classe DAO. Cette classe va jouer l’intermédiaire entre la couche présentation et la couche DAO. Expliquant l’exemple de la méthode insertProduit. On créée un objet produitDao instance de la classe ProduitDAOImpl pour pouvoir accéder aux méthodes de cette dernières. A travers cet objet on appelle la méthode insert produit comme suit : produitDao.insertProduit (produit) ;
  • 7. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 7 Package def.hibernate.util Dans ce package, on va créer une classe secondaire qui va juste jouer le rôle d’un utilitaire pour pouvoir lire le fichier de configuration de Hibernate. Il y aura une création de session sessionFactory de Hibernate pour pouvoir accéder et lire le fichier de configuration hibernate.cfg.xml.
  • 8. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 8 Le fichier de configuration de Hibernate hibernate.cfg.xml On créée un fichier xml sous le nom de hibernate.cfg.xml sous la racine du projet. C’est le fichier de configuration de Hibernate. Le fichier contiendra la configuration des données liées à la base comme le driver, url, le login et le mot de passe. Le fichier contient aussi l’appel à la classe JDBCTransactionFactory de Hibernate, définit le dialect Mysql qui est utilisé. Le plus important c’est la définition d fichier de Mapping produit.hbm.xml. A chaque fois qu’on crée un nouveau fichier de Mapping, une ligne sera ajoutée dans ce fichier.
  • 9. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 9 Package def.hibernate.presentation Pour le moment, il n’y a pas d’interface de présentation. On va créer une classe principale main pour pouvoir tester les différentes méthodes déjà implémentées. Utilisation des annotations Vu que l’écriture des fichiers de Mapping n’est mas aussi facile, il y a trop risque d’erreur. On peut remplacer ces fichiers par les annotations dans les classes persistantes. La classe devient comme suit :
  • 10. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 20 janvier 2015 10 Il y aura une petite modification dans le fichier de configuration d’hibernate, on ne définit plus les fichiers hbm.xml mais on définit les classes modèles .java