<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Premier contact avec JPA et Hibernate - Chicoree</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate</link><atom:link href="http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate?action=toFeed" rel="self" type="application/rss+xml"/><description><![CDATA[JPA (Java Persistence API) est l'interface standard dans Java pour assurer la persistance des données. Mais JPA n'est qu'une interface. Pour pouvoir l'utiliser il vous faut un fournisseur de service. Nous allons voir dans cet article comment utiliser Hibernate comme fournisseur de persistance JPA dans le contexte d'une application JavaSE.
]]></description><item><title>1 Le projet initial</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Le_projet_initial</link><description><![CDATA[<p>Puisqu'il faut un exemple, prenons en un très simple. Notre application va gérer les animaux d'un zoo. Ces animaux sont identifiés par leur nom (unique: ça sera notre clé primaire) et contiendra leur date d'entrée au zoo. Ce qui nous donne la classe Java suivante:
</p>]]></description></item><item><title>2 Premiers programmes avec JPA</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Premiers_programmes_avec_JPA</link><description><![CDATA[<p>Plutôt que de tergiverser plus longtemps, nous allons tout de suite voir le code source de non pas un, mais deux programmes utilisant JPA. Le premier servira à créer des <b>instances</b> de la classe <tt>Animal</tt> et à les rendre <b>persistantes</b>. Le second rechargera et affichera l'ensemble des animaux stockés dans la base de données.
</p>]]></description></item><item><title>2.1 Le code source</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Le_code_source</link><description><![CDATA[<p>Plutôt que de tergiverser plus longtemps, nous allons tout de suite voir le code source de non pas un, mais deux programmes utilisant JPA. Le premier servira à créer des <b>instances</b> de la classe <tt>Animal</tt> et à les rendre <b>persistantes</b>. Le second rechargera et affichera l'ensemble des animaux stockés dans la base de données.
</p>]]></description></item><item><title>2.2 Le fichier de configuration</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Le_fichier_de_configuration</link><description><![CDATA[<p>Une des forces de JPA est son architecture modulaire. Ainsi, il est possible de facilement changer de fournisseur de persistance. Ou de serveur de base de données. Et tout cela sans incidence sur le code source. Comme souvent dans le monde Java, ceci est rendu possible par l'utilisation d'un fichier de configuration XML. Ici, il s'agit du fichier <tt>persistence.xml</tt> à placer dans le répertoire <tt>META-INF</tt> (que vous devrez créer à la racine de votre projet). Voici le code de <tt>META-INF/persistence.xml</tt>:
</p>]]></description></item><item><title>2.3 Compilation?</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Compilation.3F</link><description><![CDATA[<p>A ce stade, l'arborescence de votre projet doit être la suivante:
</p>]]></description></item><item><title>2.4 Installer les bibliothèques d'Hibernate</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Installer_les_biblioth.C3.A8ques_d.27Hibernate</link><description><![CDATA[<p>Hibernate dépend de pas mal d'autres bibliothèques. C'est dire que l'installation peut être fastidieuse. Pour palier à ce problème, la distribution d'Hibernate existe en plusieurs <i>parfums</i>. Selon vos besoins, vous téléchargerez une distribution ou l'autre et normalement vous devriez avoir non seulement Hibernate, mais aussi les bibliothèques nécessaires pour l'utiliser.
</p>]]></description></item><item><title>2.5 Compilation !</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Compilation_.21</link><description><![CDATA[<p>Nouvelle tentative de compilation:
</p>]]></description></item><item><title>2.6 Préparer la base de données</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Pr.C3.A9parer_la_base_de_donn.C3.A9es</link><description><![CDATA[<p>"Préparer" la base de données pour être utilisée par JPA/Hibernate veut dire deux choses. Tout d'abord installer le driver, puis créer la base elle-même.
</p>]]></description></item><item><title>2.7 Les entités</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Les_entit.C3.A9s</link><description><![CDATA[<p>Cette fois ça y est? Toutes les bibliothèques sont en place. Les fichiers de configurations prêts. La base de données installée et les sources compilés depuis un bon moment. Rien ne peut plus échouer? Essayons:
</p>]]></description></item><item><title>2.8 Création automatique des tables</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Cr.C3.A9ation_automatique_des_tables</link><description><![CDATA[<p>Pour comprendre ce qui s'est passé, nous aurons besoin d'aller jeter un oeil dans la base de données, pour voir ce qu'y a fait Hibernate. Pour que nous soyons tous dans le même cas de figure, relancez encore une fois l'ajout d'un animal:
</p>]]></description></item><item><title>3 Exploration</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Exploration</link><description><![CDATA[<p>Pour terminer cet article d'introduction, nous allons explorer quelques unes des facettes liées à la persistance avec Hibernate. Nous verrons tout d'abord comment Hibernate est dépendant des services fournis par le serveur de base de données sous-jascent. Et ensuite que les <i>objets</i> persistants dans la base de données peuvent avoir d'autres origines qu'un programme utilisant JPA ...
</p>]]></description></item><item><title>3.1 Contraintes et transactions</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Contraintes_et_transactions</link><description><![CDATA[<p>Pour explorer la dépendance entre Hibernate et le serveur de base de données, nous allons commencer par regarder un peu comment se comporte l'application si l'on essaye de rentrer un animal déjà présent dans la base de données:
</p>]]></description></item><item><title>3.2 Créer des objets "à la main"</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Cr.C3.A9er_des_objets_.22.C3.A0_la_main.22</link><description><![CDATA[<p>Autre point dont il faut avoir conscience lors de l'utilisation de JPA: Jusqu'à présent nous avons beaucoup employé le mot de "persistance". Comme si nous enregistrions vraiment un objet dans la base de données. Puis le rechargions au besoin. Mais en réalité JPA n'est rien d'autre qu'une <b>passerelle</b> (<i>bridge</i>) entre le <b>modèle objet</b> utilisé par Java et le <b>modèle relationnel</b> utilisé par la base de données. Et en fait, il s'agit plus de <b>copier</b> dans la base les <b>données</b> d'un objet – puis d'être capable ultérieurement d'initialiser un <b>nouvel objet</b> à partir de ces données.
</p>]]></description></item><item><title>4 Conclusion</title><link>http://www.chicoree.fr/w/Premier_contact_avec_JPA_et_Hibernate#Conclusion</link><description><![CDATA[<p>Voilà, nous avons fini notre rapide présentation de JPA/Hibernate. Comme vous l'avez constaté, la mise en oeuvre initiale d'Hibernate peut être assez longue. Mais une fois en place, développer avec Hibernate – c'est à dire définir des entités, rendre des objets persistants ou les recharger – devient extrêmement aisé. Et même si cette technologie n'est pas forcément la solution à tous les problèmes, cela vaut largement le coup de consacrer quelques heures à l'étudier!
</p>]]></description></item></channel></rss>
