IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo dvp
  • Forums
  • Tutoriels
  • FAQ
  • Blogs
  • Chat
  • Newsletter
  • Emploi
  • Études
  • Droit
  • Club
  • DI/DSI Solutions d'entreprise
    • DI/DSI Solutions d'entreprise
    • Big Data
    • BPM
    • Business Intelligence
    • Data Science
    • ERP / PGI
    • CRM
    • SAS
    • SAP
    • Sécurité
    • Droit informatique et entreprise
    • OnlyOffice
  • Cloud
    • Cloud Computing
    • Oracle
    • Azure
    • IBM Cloud
  • IA
    • Intelligence artificielle
  • ALM
    • ALM
    • Agile
    • Merise
    • UML
  • Microsoft
    • Microsoft
    • .NET
    • Microsoft Office
    • Visual Studio
    • Windows
    • ASP.NET
    • TypeScript
    • C#
    • VB.NET
    • Azure
  • Java
    • Java
    • Java Web
    • Spring
    • Android
    • Eclipse
    • NetBeans
  • Dév. Web
    • Développement et hébergement Web
    • AJAX
    • Apache
    • ASP
    • CSS
    • Dart
    • Flash / Flex
    • JavaScript
    • NodeJS
    • PHP
    • Ruby & Rails
    • TypeScript
    • Web sémantique
    • Webmarketing
    • (X)HTML
  • EDI
    • EDI
    • 4D
    • Delphi
    • Eclipse
    • JetBrains
    • LabVIEW
    • NetBeans
    • MATLAB
    • Scilab
    • Visual Studio
    • WinDev
    • Visual Basic 6
    • Lazarus
    • Qt Creator
  • Programmation
    • Programmation
    • Débuter - Algorithmique
    • 2D - 3D - Jeux
    • Assembleur
    • C
    • C++
    • C#
    • D
    • Go
    • Kotlin
    • Objective C
    • Pascal
    • Perl
    • Python
    • Rust
    • Swift
    • Qt
    • XML
    • Autres
  • SGBD
    • SGBD & SQL
    • 4D
    • Access
    • Big Data
    • Data Science
    • DB2
    • Firebird
    • InterBase
    • MySQL
    • NoSQL
    • PostgreSQL
    • Oracle
    • Sybase
    • SQL-Server
    • MongoDB
  • Office
    • Microsoft Office
    • Access
    • Excel
    • Word
    • Outlook
    • PowerPoint
    • SharePoint
    • Microsoft Project
    • OpenOffice & LibreOffice
    • OnlyOffice
  • Mobiles
    • Mobiles
    • Android
    • iOS
  • Systèmes
    • Systèmes
    • Windows
    • Linux
    • Arduino
    • Hardware
    • HPC
    • Mac
    • Raspberry Pi
    • Réseau
    • Green IT
    • Sécurité
    • Systèmes embarqués
    • Virtualisation
    • Informatique quantique
    • Crypto, NFT & Blockchain
  • Java
  • Java Web
  • Spring
  • Android
  • Eclipse
  • NetBeans
  • Forums Java
  • FAQ Java
  • Tutoriels Java
  • Livres Java
  • Vidéos Java
  • Sources Java
  • Outils, EDI & API Java
  • JavaSearch

Persistance Java 5 par la pratique

Table des matièresPlier Déplier

  • Remerciements
    • I. Remerciements
  • Introduction
    • II. Introduction
      • II-A. Objectifs
      • II-B. Références
      • II-C. Outils utilisés
      • II-D. Téléchargement des exemples
      • II-E. Configuration des projets Eclipse des exemples
  • Les entités JPA
    • III. Les entités JPA
      • III-A. Exemple 1 - Représentation objet d'une table unique
        • III-A-1. La table [personne]
        • III-A-2. L'entité [Personne]
        • III-A-3. Le projet Eclipse des tests
        • III-A-4. L'entité [Personne] (2)
        • III-A-5. Configuration de la couche d'accès aux données
        • III-A-6. Génération de la base de données avec un script Ant
        • III-A-7. Exécution de la tâche ant DDL
        • III-A-8. Exécution de la tâche ant BD
        • III-A-9. Le contexte de persistance d'une application
        • III-A-10. Un premier client JPA
          • III-A-10-a. Le code
          • III-A-10-b. L'exécution du code
        • III-A-11. Mettre en œuvre les logs d'Hibernate
        • III-A-12. Découvrir le langage JPQL / HQL avec la console Hibernate
        • III-A-13. Un second client JPA
          • III-A-13-a. La structure du code
          • III-A-13-b. Test 1
          • III-A-13-c. Test 2
          • III-A-13-d. Test 3
          • III-A-13-e. Test 4
          • III-A-13-f. Test 5
          • III-A-13-g. Test 6
          • III-A-13-h. Test 7
          • III-A-13-i. Test 8
          • III-A-13-j. Test 9
          • III-A-13-k. Test 10
          • III-A-13-l. Test 11
          • III-A-13-m. Test 12
        • III-A-14. Changer de SGBD
          • III-A-14-a. Oracle 10g Express
          • III-A-14-b. PostgreSQL 8.2
          • III-A-14-c. SQL Server Express 2005
          • III-A-14-d. Firebird 2.0
          • III-A-14-e. Apache Derby
          • III-A-14-f. HSQLDB
        • III-A-15. Changer d'implémentation JPA
          • III-A-15-a. Le projet Eclipse
          • III-A-15-b. La configuration de la couche JPA / Toplink
          • III-A-15-c. Test [InitDB]
          • III-A-15-d. Test [Main]
        • III-A-16. Changer de SGBD dans l'implémentation JPA / Toplink
          • III-A-16-a. Oracle 10g Express
          • III-A-16-b. Les autres SGBD
        • III-A-17. Conclusion
      • III-B. Exemple 2 : relation un-à-un via une inclusion
        • III-B-1. Le schéma de la base de données
        • III-B-2. Les objets @Entity représentant la base de données
        • III-B-3. L'environnement des tests
        • III-B-4. Génération de la DDL de la base de données
        • III-B-5. InitDB
        • III-B-6. Main
        • III-B-7. Implémentation JPA / Toplink
      • III-C. Exemple 3 : relation un-à-un via une clé étrangère
        • III-C-1. Le schéma de la base de données
        • III-C-2. Les objets @Entity représentant la base de données
        • III-C-3. Le projet Eclipse / Hibernate 1
        • III-C-4. Génération de la DDL de la base de données
        • III-C-5. InitDB
        • III-C-6. Main
          • III-C-6-a. Test1
          • III-C-6-b. Test2
          • III-C-6-c. Test4
          • III-C-6-d. Test5
          • III-C-6-e. Test6
          • III-C-6-f. Test7
        • III-C-7. Projet Eclipse / Hibernate 2
        • III-C-8. Console Hibernate
        • III-C-9. Implémentation JPA / Toplink
      • III-D. Exemple 4 : relation un-à-plusieurs
        • III-D-1. Le schéma de la base de données
        • III-D-2. Les objets @Entity représentant la base de données
        • III-D-3. Le projet Eclipse / Hibernate 1
        • III-D-4. Génération de la DDL de la base de données
        • III-D-5. InitDB
        • III-D-6. Main
          • III-D-6-a. Test3
          • III-D-6-b. Test4
          • III-D-6-c. Test5
          • III-D-6-d. Test6
          • III-D-6-e. Test7
          • III-D-6-f. Test8
        • III-D-7. Projet Eclipse / Hibernate 2
        • III-D-8. Implémentation JPA / Toplink - 1
        • III-D-9. Implémentation JPA / Toplink - 2
      • III-E. Exemple 5 : relation plusieurs-à-plusieurs avec une table de jointure explicite
        • III-E-1. Le schéma de la base de données
        • III-E-2. Les objets @Entity représentant la base de données
        • III-E-3. Le projet Eclipse / Hibernate
        • III-E-4. Génération de la DDL de la base de données
        • III-E-5. InitDB
        • III-E-6. Main
          • III-E-6-a. Test2
          • III-E-6-b. Test3
          • III-E-6-c. Test4
          • III-E-6-d. Test5
        • III-E-7. Implémentation JPA / Toplink
      • III-F. Exemple 6 : relation plusieurs-à-plusieurs avec une table de jointure implicite
        • III-F-1. Le schéma de la base de données
        • III-F-2. Les objets @Entity représentant la base de données
        • III-F-3. Le projet Eclipse / Hibernate
        • III-F-4. Génération de la DDL de la base de données
        • III-F-5. InitDB
        • III-F-6. Main
          • III-F-6-a. Test3
          • III-F-6-b. Test6
        • III-F-7. Implémentation JPA / Toplink
        • III-F-8. Le projet Eclipse / Hibernate 2
        • III-F-9. Le projet Eclipse / Toplink 2
      • III-G. Exemple 7 : utiliser des requêtes nommées
        • III-G-1. La base de données exemple
        • III-G-2. Les objets @Entity représentant la base de données
        • III-G-3. Le projet Eclipse / Hibernate
        • III-G-4. Génération de la DDL de la base de données
        • III-G-5. Requêtes JPQL avec une console Hibernate
        • III-G-6. QueryDB
        • III-G-7. Le projet Eclipse / Toplink
      • III-H. Conclusion
  • JPA dans une architecture multicouches
    • IV. JPA dans une architecture multicouches
      • IV-A. Exemple 1 : Spring / JPA avec entité Personne
        • IV-A-1. Le projet Eclipse / Spring / Hibernate
        • IV-A-2. Les entités JPA
        • IV-A-3. La couche [dao]
        • IV-A-4. La couche [metier / service]
        • IV-A-5. Configuration des couches
        • IV-A-6. Programme client [InitDB]
        • IV-A-7. Tests unitaires [TestNG]
        • IV-A-8. Changer de SGBD
        • IV-A-9. Changer d'implémentation JPA
      • IV-B. Exemple 2 : JBoss EJB3 / JPA avec entité Personne
        • IV-B-1. Le projet Eclipse / Jboss Ejb3 / Hibernate
        • IV-B-2. Les entités JPA
        • IV-B-3. La couche [dao]
        • IV-B-4. La couche [metier / service]
        • IV-B-5. Configuration des couches
        • IV-B-6. Programme client [InitDB]
        • IV-B-7. Tests unitaires [TestNG]
        • IV-B-8. Changer de SGBD
        • IV-B-9. Changer d'implémentation JPA
      • IV-C. Autres exemples
      • IV-D. Exemple 3 : Spring / JPA dans une application web
        • IV-D-1. Présentation
        • IV-D-2. Le projet Eclipse
        • IV-D-3. La couche [web]
          • IV-D-3-a. Configuration de l'application web
          • IV-D-3-b. Les pages JSP / JSTL de l'application
          • IV-D-3-c. Le contrôleur de l'application
        • IV-D-4. Les tests de l'application web
        • IV-D-5. Version 2
        • IV-D-6. Changer d'implémentation JPA
      • IV-E. Autres exemples
  • Conclusion
    • V. Conclusion
  • ANNEXES
    • VI. ANNEXES
      • VI-A. Java
      • VI-B. Eclipse
        • VI-B-1. Installation de base
        • VI-B-2. Choix du compilateur
        • VI-B-3. Installation des plugins Callisto
        • VI-B-4. Installation du plugin [TestNG]
        • VI-B-5. Installation du plugin [Hibernate Tools]
        • VI-B-6. Installation du plugin [SQL Explorer]
      • VI-C. Le conteneur de servlets Tomcat 5.5
        • VI-C-1. Installation
        • VI-C-2. Déploiement d'une application web au sein du serveur Tomcat
        • VI-C-3. Déploiement
        • VI-C-4. Administration de Tomcat
        • VI-C-5. Gestion des applications web déployées
        • VI-C-6. Application web avec page d'accueil
        • VI-C-7. Intégration de Tomcat dans Eclipse
      • VI-D. Le SGBD Firebird
        • VI-D-1. SGBD Firebird
        • VI-D-2. Travailler avec le SGBD Firebird avec IB-Expert
        • VI-D-3. Création d'une table de données
        • VI-D-4. Insertion de données dans une table
        • VI-D-5. L'éditeur SQL de [IB-Expert]
        • VI-D-6. Exportation d'une base Firebird vers un script SQL
        • VI-D-7. Pilote JDBC de Firebird
      • VI-E. Le SGBD MySQL5
        • VI-E-1. Installation
        • VI-E-2. Lancer / Arrêter MySQL5
        • VI-E-3. Clients d'administration MySQL
        • VI-E-4. Création d'un utilisateur jpa et d'une base de données jpa
        • VI-E-5. Pilote JDBC de MySQL5
      • VI-F. Le SGBD PostgreSQL
        • VI-F-1. Installation
        • VI-F-2. Lancer / Arrêter PostgreSQL
        • VI-F-3. Administrer PostgreSQL
        • VI-F-4. Création d'un utilisateur jpa et d'une base de données jpa
        • VI-F-5. Pilote JDBC de PostgreSQL
      • VI-G. Le SGBD Oracle 10g Express
        • VI-G-1. Installation
        • VI-G-2. Lancer / Arrêter Oracle 10g
        • VI-G-3. Création d'un utilisateur jpa et d'une base de données jpa
        • VI-G-4. Création de la table [ARTICLES] de la base de données jpa
        • VI-G-5. Pilote JDBC de OracleXE
      • VI-H. Le SGBD SQL Server Express 2005
        • VI-H-1. Installation
        • VI-H-2. Lancer / Arrêter SQL Server
        • VI-H-3. Création d'un utilisateur jpa et d'une base de données jpa
        • VI-H-4. Création de la table [ARTICLES] de la base de données jpa
        • VI-H-5. Pilote JDBC de SQL Server Express
      • VI-I. Le SGBD HSQLDB
        • VI-I-1. Installation
        • VI-I-2. Lancer / Arrêter HSQLDB
        • VI-I-3. La base de données [test]
        • VI-I-4. Pilote JDBC de HSQL
      • VI-J. Le SGBD Apache Derby
        • VI-J-1. Installation
        • VI-J-2. Lancer / Arrêter Apache Derby (Db Derby)
        • VI-J-3. Pilote JDBC de Db Derby
      • VI-K. Le framework Spring 2
      • VI-L. Le conteneur EJB3 de JBoss

Ce document aborde l'API JPA (Java Persistence API) apparue avec Java 5. JPA crée un pont relationnel / objet entre les tables d'une base de données liées par des relations et le monde objet manipulé par les applications Java. En ce sens, JPA est un ORM (Object Relational Mapping). Hibernate, qui existe depuis plusieurs années déjà, est probablement l'ORM le plus utilisé actuellement. JPA a tenu compte du succès d'Hibernate et en a repris la plupart des concepts. JPA est une spécification. Dans ce document, nous en présentons deux implémentations : 

- Hibernate 
- Toplink 

Le document est divisé en deux grandes parties : 

1- la configuration et l'utilisation de JPA qui occupent les deux tiers du document 
2- l'utilisation de la couche JPA dans des architectures multicouches 

1-La configuration et l'utilisation de JPA sont présentées avec des exemples pour les divers types de relations que l'on trouve entre les tables et donc entre les entités, images objet de ces tables : 

- un-à-un (OneToOne) 
- un-à-plusieurs (OneToMany) et la relation inverse plusieurs-à-un (ManyToOne) 
- plusieurs-à-plusieurs (ManyToMany) 

Les exemples sont donnés pour divers SGBD : MySQL5, PostgreSQL, Oracle Express, SQL Server Express, Firebird, Apache Derby, Hsql. 

2- L'utilisation de la couche JPA dans des architectures multicouches est présentée dans les contextes suivants : 

- couches [métier] [dao] et [JPA] utilisant les services (injections, transactions) du conteneur léger Spring 2.0 
- couches [métier] [dao] et [JPA] utilisant les services (injections, transactions) du conteneur Jboss Ejb3 

Le document se termine avec une application web Tomcat / Spring / JPA. 

  • Téléchargement du fichier PDF de l'article  :   http1  http2
  • Téléchargement du fichier Zip des projets Eclipse de l'article, sans les bibliothèques jars (6 Mo) :  http1  http2
  • Téléchargement du fichier Zip des projets Eclipse de l'article, avec les bibliothèques jars (89 Mo) :  http1  http2

Autres ressources (J2E, .Net, PHP, Andoid, Python, ...) : http://tahe.developpez.com

Lire l'article.

Article lu   fois.

L'auteur

Serge Tahé Profil Pro Site personnel

L'article

Publié le 1er juin 2007 - Mis à jour le 1er juin 2007 

Public visé : débutant

Version en ligne

Autre PDF

Lire l'article


suivant
  

Licence Creative Commons
Le contenu de cet article est rédigé par Serge Tahé et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2007 Developpez.com.

Contacter le responsable de la rubrique Java
  • Nous contacter
  • Soutenir Developpez.com
  • Participez
  • Hébergement
  • Publicité / Advertising
  • Informations légales

© 2000-2025 - www.developpez.com