SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Hachim IDRISSI YASSINE
contact@proflibre.com
Le : 05 juillet 2020
Hibernate : déclarer une
entité XML
Série : HIBERNATE > L’essentiel
www.proflibre.com
Sommaire
Introduction
Prérequis
Diagramme de classes
La classe JAVA : Personne.java
Schéma relationnel
Structure minimale du fichier *.hbm.xml
Choisir le typage
Remplir la fiche préparatrice
La clé primaire
Catalogue des déclarations
DATETIME vs TIMESTAMP
La déclaration XML : Personne.hbm.xml
Conclusion
2	www.proflibre.com
Introduction
L’objectif de cette formation est de savoir
comment créer une entité Hibernate avec
du XML.
3	www.proflibre.com
Prérequis
Ayant consulté les deux formations précédentes
dans la même série :
https://www.proflibre.com/?serie=55
[Hibernate] Vue d’ensemble
https://www.proflibre.com/JAVA_:_HIBERNATE/
[Hibernate]_Vue_d%E2%80%99ensemble/1
Hibernate Native : configurer
https://www.proflibre.com/JAVA_:_HIBERNATE/
Hibernate_Native_:_configurer/2
4	www.proflibre.com
Diagramme de classes
5	www.proflibre.com	
Personne	
-	id	:	Long	
-	nom	:	String	
-	prenom	:	String	
-	biographie	:	String	
-	age	:	int	
-	poids	:	Double	
-	compte	:	BigDecimal	
-	dateMariage	:	Date	
-	dateInser<on	:	Timestamp	
+	Ge?ers	&	Se?ers	
Diagramme	de	classes	«	UML	»	:
La classe JAVA
« Personne.java »
6	www.proflibre.com
Schéma relationnel
7	www.proflibre.com	
Schéma	rela?onnel	«	MLD	/	MySQL	»	de	la	table	«	Personne	»	qu’on	souhaite	générer	
automa?quement	avec	Hibernate	:
Structure minimale
du fichier *.hbm.xml
8	www.proflibre.com	
<hibernate-mapping	package="com.proflibre.xml">	
<class	name="Personne"	table="PERSONNE">												Nom	de	la	table	dans	la	BD	
<id	name="id"	column="personne_id">	
	<generator	class="iden>ty"/>																	Clé	primaire	
</id>		propriété	JAVA	et	nom	du	champ	dans	la	BD	
<property	name="nom"	type="org.hibernate.type.StringType"	
length="500"	/>					propriété	JAVA								Type	Hibernate	
…																																																																																																																								Autres	
<property	name="dateInser>on"	type=">mestamp">	
<column	name="date_inser>on"	sql-type="TIMESTAMP"	/>	
</property>	
	</class>	
</hibernate-mapping>									Nom	du	champ	dans	la	BD								Type	du	champ	dans	la	BD	
	
	
	
Package	JAVA	
Nom	de	la	classe	JAVA	
AUTO_INCREMENT	
Taille	du	
champ	
dans	la	
BD
Choisir le typage
9	www.proflibre.com	
Pour	faire	la	correspondance	entre	les	types	Hibernate,	JAVA	et	SGBD	(MySQL),	
rendez-vous	sur	la	documenta<on	officielle	(rubrique	2.3.	Basic	Types)	:	
h?ps://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/
Hibernate_User_Guide.html#basic	
	
Deux	déclara<ons	possibles	:	
	
1.	L’aYribut	“type”	de	la	balise	“property”	:	
	
<property	name="nom"	type="org.hibernate.type.StringType"	length="500"	/>	
	
L’aNribut	type	peut	prendre	comme	valeur	le	:	
Ø  Nom	d’un	type	Hibernate	:	Hibernate	type	(org.hibernate.type	package),	
exemple	:	org.hibernate.type.StringType	
Ø  Nom	d'une	classe	Java	:	Java	type,	exemple	:	java.lang.String	
Ø  Nom	d'un	type	basique	Hibernate	:	BasicTypeRegistry	key(s),	exemple	:	string.
Choisir le typage
10	www.proflibre.com	
2.	L’aYribut	“sql-type”	de	la	balise	“column”	:		
	
<property	name="dateInser>on"	type=">mestamp">	
	<column	name="date_inser>on"	sql-type="TIMESTAMP"	/>	
</property>	
	
L’a?ribut	sql-type	peut	prendre	comme	valeur	le	type	du	champ	dans	la	base	du	SGBD,	
ce	qui	correspond	à	la	colonne	JDBC	type	de	la	documenta<on	officielle,	exemple	:	
VARCHAR.	Pour	spécifier	la	taille	de	la	chaîne,	il	suffit	de	rajouter	l’a?ribut	length	à	la	
balise	column.
Remplir la fiche
préparatrice
11	www.proflibre.com	
Propriétés	
JAVA/Hibernate	
Types	JAVA	 Types	
Hibernate	
Champs	MySQL	 Types	MySQL	
id	 Long	 long	 personne_id	 bigint	
nom	 String	 org.hibernate.t
ype.StringType	
nom	 varchar	
prenom	 String	 java.lang.String	 prenom	 varchar	
biographie	 String	 text	 biographie	 longtext	
age	 int	 int	 age	 int	
poids	 Double	 double	 poids	 double	
compte	 BigDecimal	 big_decimal	 compte	 decimal	
dateMariage	 Date	 date	 dateMariage	 date	
dateInser<on	 Timestamp	 ?mestamp	 date_inser<on	 ?mestamp
La clé primaire
12	www.proflibre.com	
	
Plusieurs	valeurs	sont	possibles	pour	l’a?ribut	class	de	la	balise	generator	:	
	
Ø  iden?ty	:	l'iden<fiant	renvoyé	est	de	type	long,	short	ou	int,	c’est	l’équivalent	d’une	
clé	primaire	AUTO_INCREMENT	pour	MySQL.	
Ø  na?ve	:		choisit	iden<ty,	sequence	ou	hilo	selon	les	possibilités	offertes	par	la	base	
de	données	sous-jacente,	c’est	l’équivalent	d’une	clé	primaire	AUTO_INCREMENT	
pour	MySQL.	
Ø  Increment	:	ne	pas	u<liser	en	environnement	clusterisé.	Ce	n’est	pas	l’équivalent	
d’une	clé	primaire	AUTO_INCREMENT	pour	MySQL,	l’incrémenta<on	est	gérée	ici	
par	Hibernate	et	non	par	le	SGBD.	
Ø  assigned	:	laisse	l'applica<on	affecter	un	iden<fiant	à	l'objet	avant	que	la	méthode	
save()	soit	appelée.	Il	s'agit	de	la	stratégie	par	défaut	si	aucun	<generator>	n'est	
spécifié.	
Ø  	Sequence	:		u<lisa<on	des	séquences	dans	DB2,	PostgreSQL,	Oracle,	SAP	DB,	McKoi	
ou	d'un	générateur	dans	Interbase.	L'iden<fiant	renvoyé	est	de	type	long,	short	ou	
int.	Les	séquences	sont	très	u<lisées	sur	Oracle.	
Ø  …
Catalogue des déclarations
13	www.proflibre.com	
Pour	plus	d’informa>ons	sur	la	structure,	visitez	les	rubriques	5.1.3.	class,	5.1.4.	id,	
5.1.4.1.	Generator,	5.1.11.	property	et	5.1.22.	éléments	column	et	formula	de	
l’ancienne	documenta>on	officielle	pour	XML	:	
hNps://docs.jboss.org/hibernate/stable/core.old/reference/fr/html/mapping.html
DATETIME vs TIMESTAMP ?
14	www.proflibre.com	
Les	types	DATETIME	et	TIMESTAMP	sont	tous	les	deux	u<lisés	pour	les	
valeurs	qui	con<ennent	des	par<es	de	date	et	d'heure.	MySQL	les	récupère	
et	les	affiche	au	format		'YYYY-MM-DD	hh:mm:ss'	format.	
	
DATETIME	est	définie	dans	l’inervalle	'1000-01-01	00:00:00’	à	'9999-12-31	
23:59:59'.	
	
TIMESTAMP	est	définie	dans	l’inervalle	'1970-01-01	00:00:01'	UTC	à	
'2038-01-19	03:14:07'	UTC.	
	
MySQL	conver<t	les	valeurs	TIMESTAMP	du	fuseau	horaire	actuel	en	UTC	
pour	le	stockage,	et	de	retour	de	l'UTC	vers	le	fuseau	horaire	actuel	pour	la	
récupéra<on.	(Cela	ne	se	produit	pas	pour	d'autres	types	tels	que	
DATETIME.)	Par	défaut,	le	fuseau	horaire	actuel	pour	chaque	connexion	est	
l'heure	du	serveur.	
	
Source	:	h?ps://dev.mysql.com/doc/refman/8.0/en/date<me.html
DATETIME vs TIMESTAMP ?
15	www.proflibre.com	
Ø  Créer	un	champ	de	type	MySQL	TIMESTAMP	avec	Hibernate	:	
Ø  Créer	un	champ	de	type	MySQL	DATETIME	avec	Hibernate	:
La déclaration XML
« Personne.hbm.xml »
16	www.proflibre.com	
Nombre	total	de	chiffres	
Nombre	de	chiffres	après	la	virgule	
Nom	du	champ	dans	la	base	
Nom	de	la	propriété	dans	la	classe	JAVA
Conclusion
Dans l’étape suivante, nous allons découvrir
comment créer la même entité vue dans
cette formation avec les annotations.
17	www.proflibre.com
www.proflibre.com	 18	
Merci de votre attention.
Vous pouvez poser des questions ou laisser des
remarques dans la zone des commentaires sur la
page de cette formation. D’autres formations qui
pourront vous intéresser sont publiées sur
ProfLibre.com régulièrement.
Vous pouvez aussi passer le Quizz sur la même
page pour tester vos connaissances. Et n’oubliez
pas de vous abonner à notre chaîne Youtube et
partager avec vos collègues.
A très bientôt !
L’équipe ProfLibre.com
www.proflibre.com	 19	www.proflibre.com

Contenu connexe

Similaire à Hibernate : comment déclarer une entité XML

Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinalAymen Drira
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
La Programmation Orienté Objet en VB.Net
La Programmation Orienté Objet en VB.NetLa Programmation Orienté Objet en VB.Net
La Programmation Orienté Objet en VB.NetAli Ben Amor
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesYann Caron
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingFrançois Le Droff
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigAbdelkader Rhouati
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockagedavrous
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Présentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de SymfonyPrésentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de SymfonyRaphaël Kueny
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersFrédéric Simonet
 

Similaire à Hibernate : comment déclarer une entité XML (20)

575
575575
575
 
Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinal
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
La Programmation Orienté Objet en VB.Net
La Programmation Orienté Objet en VB.NetLa Programmation Orienté Objet en VB.Net
La Programmation Orienté Objet en VB.Net
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM bases
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 
Cours wpf avancé
Cours wpf avancéCours wpf avancé
Cours wpf avancé
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Poo vb.net
Poo vb.netPoo vb.net
Poo vb.net
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockage
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Présentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de SymfonyPrésentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de Symfony
 
Cours html5
Cours html5Cours html5
Cours html5
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
 

Dernier

L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
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...Nguyen Thanh Tu Collection
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 

Dernier (16)

L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
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...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 

Hibernate : comment déclarer une entité XML