HIBERNATE ET JPA
2012
1
Introduction
A ce jour, la plate-forme Java est utilisée par plus de 9 millions de développeurs de logiciels.
Elle est présente dans tous les secteurs industriels majeurs et couvre toute une gamme de
dispositifs, d'ordinateurs et de réseaux. Grâce à sa flexibilité, son efficacité, la portabilité de sa
plate-forme et sa sécurité, la technologie Java est devenue la solution idéale pour
l'informatique de réseau. Des ordinateurs portables aux centres de données, des consoles de
jeux aux superordinateurs scientifiques, des téléphones portables à Internet, la technologie
Java est présente sur tous les fronts .
En Java, nous disposons de la Java Persistence API (abrégée JPA), une interface de
programmation qui constitue une couche au-dessus de JDBC. Elle permet de rendre
transparente la couche JDBC et de faire le lien entre une base de données relationnelle et des
objets Java. Ainsi, les accès directs à la base de données sont remplacés par des appels à
des méthodes objet de haut niveau et l'application manipule uniquement des objets,
s'affranchissant de l'aspect relationnel des bases de données.
HIBERNATE ET JPA
2012
2
I/HIBERNATE
1/Définition :
Hibernate est une solution open source de type ORM (Object Relational
Mapping) qui permet de faciliter le développement de la couche
persistance d'une application. Hibernate permet donc de représenter une
base de données en objets Java et vice versa.
Hibernate facilite la persistence et la recherche de données dans une
base de données en réalisant lui même la création des objets et les
traitements de remplissage de ceux-ci en accédant à la base de
données. La quantité de code ainsi épargnée est très importante
d'autant que ce code est généralement fastidieux et redondant.
Hibernate est très populaire notamment à cause de ses bonnes
performances et de son ouverture à de nombreuses bases de données.
Les bases de données supportées sont les principales du marché : DB2,
Oracle, MySQL, PostgreSQL, Sybase, SQL Server, Sap DB, Interbase, ...
●Hibernate est un logiciel écrit sous la responsabilité de Gavin King, qui
fait entre autre partie de l'équipe de développement de JBOSS.
L'ensemble des données nécessaires au fonctionnement de l'application
sont sauvegardées dans une base de données. La manipulation des
données peut se faire de différentes manières : Par l'accès directement à
la base en écrivant les requêtes SQL adéquates. Utiliser un outil d'ORM
(object Relationnal Mapping) permettant de manipuler facilement les
données et d'assurer leur persistance. Il en existe plusieurs.
Pourquoi ajouter une couche entre l'application et la base de données ?
●L'objectif est de réduire le temps de développement de l'application en
éliminant une grande partie du code SQL à écrire pour interagir avec la
base de données et en encapsulant le code SQL résiduel. Les
développeurs manipulent les classes dont les données doivent être
persistantes comme des classes Java normales. Seules une initialisation
correcte d'hibernate doit être effectuée, et quelques règles respectées lors
de l'écriture et de la manipulation des classes persistantes.
HIBERNATE ET JPA
2012
3
2/ l'architecture d'Hibernate :
Hibernate est un framework qui gère la persistance des objets en base de
données.
Ce projet ne repose sur aucun standard mais il est populaire notamment grâce à
ses bonnes performances et son ouverture avec de nombreuses base de
données .
Voici une vue (très) haut niveau de l'architecture d'Hibernate :
Arch it ec htur e de H i be rn at e
Ce diagramme montre Hibernate utilisant une base de données et des données de configuration
pour fournir un service de persistance (et des objets persistants) à l'application.
HIBERNATE ET JPA
2012
4
L'architecture la plus complète abstrait l'application des APIs JDBC/JTA sous-jacentes et laisse
Hibernate s'occuper des détails.
Arch it ec htur e de H i be rn at e
3/Les avantages et Les inconvénients d’Hibernate:
Les avantages :
*Hibernate génère le code SQL nécessaire, ce qui rend l'application plus portable (s'adapte à la base
de données)
*La persistance est transparente. Vous pouvez faire de vos classes métiers des classes persistantes
sans ajout de code.
HIBERNATE ET JPA
2012
5
*La récupération de donées est optmisée. On peut intérroger la base de données de plusieur façon
(Requête SQL, langage HQL...)
*Portabilité du code en cas de changement de la base de données
Les inconvénients :
*Il est dure de faire des requètes complexe avec HQL (ex: sous requêtes)
*Etant une technologie jeune, il rest des problèmes à résoudre (ex: les
fichiers de mapping ne sont pas toujour bien formés)
*Ne se base pas sur les standards
II/La Java Persistence API (JPA)
1/Définition :
La Java Persistence API (abrégée en JPA), est une interface de
programmation Java permettant aux développeurs d'organiser
des données relationnelles dans des applications utilisant la
plateforme Java.
La Java Persistence API est à l'origine issue du travail du groupe
d'experts JSR 220.
La persistance dans ce contexte recouvre 3 zones :
●l'API elle-même, définie dans le paquetage javax.persistence.
●e langage Java Persistence Query (JPQL) .
●l'objet/les métadonnées relationnelles.
L’API de persistance de Java, JPA, a deux aspects :
●Le premier est la possibilité d’associer des objets à une base de données
relationnelle. La configuration par exception permet aux fournisseurs de
persistance de faire l’essentiel du travail sans devoir ajouter beaucoup de
code, mais la richesse de JPA tient également à la possibilité d’adapter ces
associations à l’aide d’annotations ou de descriptions XML. Que ce soit une
modification simple (changer le nom d’une colonne, par exemple) ou une
adaptation plus complexe (pour traduire l’héritage), JPA offre un large
spectre de possibilités. Vous pouvez donc associer quasiment n’importe
quel modèle objet à une base de données existante.
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !