ADO.NET et JPA
Chapitre  ILA PERSISTANCE DES OBJETS1-introduction2- le mapping  O/R (objet/relationnel)3-l’architecture                   JAVA…..ADO.NET4-la persistance de données                     JAVA…..ADO.NET
Chapitre  ILA PERSISTANCE DES OBJETS1-introductionplusieurs types de base de données:    Dl1,IMS: Hiérarchique Mysql:Relationnelle (RDBMS / SGBDR)Objet (ODBMS / SGBDO): db4objects  Xindice:XML (XDBMS) La seconde catégorie est historiquement la plus répandue mais aussi une des moins compatible avec la programmation orienté objet.
Chapitre  ILA PERSISTANCE DES OBJETS2-LE MAPPING O/R (objet/relationnel) Assurer le mapping des tables avec les classes
 mettre en oeuvre des actions de type CRUD
Eventuellementpermettrel'héritage des mappings
Proposer un langage de requêtes indépendant de la base de données cible et assurer une traduction en SQL natif
 Supporter différentes formes d'identifiants générés automatiquement par les bases de données (identity, sequence, ...)
 Proposer un support des transactions
Assurer une gestion des accès concurrents (verrou, deadlock, ...) Chapitre  ILA PERSISTANCE DES OBJETSMAPPING OBJET RELATIONNEL (JPA):
Chapitre  ILA PERSISTANCE DES OBJETS3-L’ARCHITECTURE :31-l’architecture en java :Dans une architecture en couche: prévoir une couche dédiée aux accès aux données.La couche de persistence un niveau d'abstraction entre la base de données et l'utilisation qui en est faite.  simplifier la couche métier qui utilise les traitements de cette couche  masquer les traitements réalisés pour mapper les objets dans la base de données et vice et versa la couche métier ne contient aucune requête SQL, ni code de connexion ou d'accès à la base de données. La couche métier utilise les classes de la couche métier qui encapsulent ces traitements. Ainsi la couche métier manipule uniquement des objets pour les accès à la base de données.
LA PERSISTANCE DES OBJETS32- l’architecture ado.net :Deux composants d'ADO.NET permettent d'accéder à des données et de les manipuler :Fournisseurs de données .NET FrameworkObjet DataSetLes Fournisseurs de données .NET Framework  :L'objet Connection assure la connectivité avec une source de données. L'objet Command permet l'accès aux commandes de base de données pour retourner des données, modifier des données,. Le DataReader fournit un flux très performant de données en provenance de la source de données. Enfin, l'objet DataAdapter établit une passerelle entre l'objet DataSet et la source de données. Le DataAdapter utilise les objets Command pour exécuter des commandes SQL au niveau de la source de données afin d'une part de charger le DataSet de données, et d'autre part de répercuter dans la source de données les modifications apportées aux données contenues dans le DataSet.LeDataset ADO.NET est explicitement conçu pour un accès aux données indépendant de toute source de données. Il peut donc être utilisé avec plusieurs sources de données différentes, utilisé avec des données XML ou utilisé pour gérer des données locales de l'application..
LA PERSISTANCE DES OBJETS
LA PERSISTANCE DES OBJETS4-LA PERSISTANCE DE DONNEES41-la persistence de données en java:JDBC : est l'acronyme de Java DataBaseConnectivity. C'est l'API standard pour permettre un accès à une base de donnéesJDO: est l'acronyme de Java Data Object : le but de cet API est de rendre transparent la persistance d'un objet. Il repose sur l'enrichissement de byte-code à la compilation.JAVA PERSISTANCE API ET EJB3.0:JPA (Java Persistence API) :C'est une synthèse standardisée des meilleurs outils du sujet (Hibernate, Toplink, ...)L'API repose sur l'utilisation d'entités persistantes sous la forme de POJOs
 un gestionnaire de persistance (EntityManager) qui assure la gestion des entités persistantes
l'utilisationd'annotations
la configuration via des fichiers xmlJPA peut être utilisé avec Java EE dans un serveur d'application mais aussi avec Java SE
LA PERSISTANCE DES OBJETS42-la persistance de données-ADO.NET : 421- La persistance manuelle (ADO.NET, DataSet, …) 422- La persistance automatique:La persistance automatique est à l’essence du mapping objet/relationnelle. Cette approche consiste à prendre en charge le cycle de vie d’une entité de manière dynamique .L’utilisateur ne se préoccupe à aucun moment de l’état de son entité.La persistance automatique fournit les services suivants :- recherche, sauvegarde, mise à jour- concurrence- cache de 1er niveau et second niveau- navigation- chargement à la demande- transactions (éventuellement)
Chapitre II:JAVA PERSISTANCE API    1- introduction    2- les entites                 le mapping entre le beanentite et la table                 le mapping de propriete complexe                 le mapping d’une entite sur plusieurs tables                 l’utilisation d’objets embarques dans les entites 3- le fichier de configuration du mapping4-L’UTILISATION DE BEAN ENTITE             l’entity manager            l’obtention d’une instance de la classe EntityManager            l’utilisation de la classe EntityManager 5- le fichier persistence.xml
CHAPITRE II      Java persistance API1-INTRODUCTIONL'API Java Persistence repose sur des entités qui sont de simples POJOs annotés et sur un gestionnaire de ces entités (EntityManager) qui propose des fonctionnalités pour les manipuler (ajout, modification suppression, recherche). Ce gestionnaire est responsable de la gestion de l'état des entités et de leur persistance dans la base de données. 
CHAPITRE II Java persistance API2-LES ENTITESUn objet Java de type POJO mappé vers une table de la base de données grâce à des méta data via l'API Java Persistence est nommé bean entité (Entitybean). la classe du bean doit obligatoirement:     être marquée avec l'annotation @javax.persistence.Entity   Posséder  une propriété déclarer comme clé primaire avec l'annotation @IdLe beanentity est composé de propriétés qui seront mappés sur les champs de la table de la base de données sous jacente. Chaque propriété encapsule les données d'un champ d'une table. Ces propriétés sont utilisables au travers de simple accesseurs (getter/setter).
CHAPITRE II      Java persistance API 21-le mapping entre le bean entité et la tableLa description du mapping entre le bean entité et la table peut être fait de deux façons :   -Utiliser des annotations    -Utiliser un fichier XML de mappingL'API propose plusieurs annotations pour supporter un mapping O/R assez complet.   @javax.persistence.TablePréciser le nom de la table concernée par le mapping@javax.persistence.ColumnAssocié à un getter, il permet d'associer un champ de la table à la propriété@javax.persistence.IdAssocié à un getter, il permet d'associer un champ de la table à la propriété en tant que clé primaire@javax.persistence.GeneratedValueDemander la génération automatique de  la clé primaire au besoin
CHAPITRE II Java persistance API22-le mapping de proprieté complexe   L'API Java persistence permet de mapper des colonnes qui concernent des données de type plus complexe que les types de base tel que les champs blob ou clob ou des objets.L'annotation @javax.persistence.Lob permet mapper une propriété sur une colonne de type Blob ou Clob selon le type de la propriété :   Blob pour les tableaux de byte ou Byte ou les objets sérializablesClob pour les chaînes de caractères et les tableaux de caractères char ou Char L'annotation  @javax.persistence.Enumerated permet d'associer une propriété de type énumération à une colonne de la table sous la forme d'un numérique ou d'une chaîne de caractères.
CHAPITRE II Java persistance API23-le mapping d’une entité sur plusieurs tablesLe modèle objet et le modèle relationnel correspondant ne correspondent pas toujours car les critères de conception ne sont pas forcement les même. Ainsi, il est courant d'avoir une entité qui mappe des colonnes de plusieurs tables.L'annotation @javax.persistence.SecondaryTablepermet de préciser qu'une autre table sera utilisée dans le mapping.L'annotation @PrimaryKeyJoinColumn permet de préciser une colonne qui compose la clé primaire de la seconde table et entre dans la jointure avec la première table.
CHAPITRE IIJava persistance API24-l’utilisation d’objets embarqué dans les entités L'API Java Persistence permet d'utiliser dans les entités des objets Java qui ne sont pas des entités  mais qui sont agrégés dans l'entité et dont les propriétés seront mappées sur les colonnes correspondantes dans la table.La mise en oeuvre de cette fonctionnalité est similaire à celle utilisée avec l'annotation @EmbeddedId pour les clés primaires composées.La classe embarquée est un simple POJO qui doit être marquée avec l'annotation @javax.persistence.Embeddable
CHAPITRE II Java persistance API3-LE FICHIER DE CONFIGURATION DE MAPPINGest aussi possible de définir le mapping dans un fichier de mapping nommé par défaut orm.xml stocké dans le répertoire META-INF.Ce fichier orm.xml est un fichier au format xml. L'élément racine est le tag <entity-mappings>.Pour chaque entité, il faut utiliser un tag fils <entity>. Ce tag possède deux attributs :Class qui permet  préciser le nom pleinement qualifié de la classe de l'entité Access qui permet de préciser le type d'accès aux données (PROPERTY pour un accès via les getter/setter ou FIELD pour un accès via les champs). La déclaration de la clé primaire se fait dans un tag <id> fils d'un tag <attributes>. Ce tag <id> possède un attribut nommé name qui permet de préciser le nom du champ qui est la clé primaire.
CHAPITRE IIJava persistance API4-L’UTILISATION DE BEAN ENTITEToutes les actions de persistance sur ces objets sont réalisées grâce à un objet dédié de l'API : l'EntityManager.Un contexte de persistance (persistencecontext) est un ensemble d'entités géré par un EntityManager.41- l’EntityManagerLes interactions entre la base de données et les beans entité sont assurées par un objet de type javax.persistence.EntityManager : il permet de lire et rechercher des données mais aussi de les mettre à jour (ajout, modification, suppression). L'EntityManager est donc au coeur de toutes les actions de persistance.Un EntityManager gère un ensemble défini de beans entité nommé persistence unit. La définition d'un persistence unit est assurée dans un fichier de description nommé persistence.xml.
CHAPITRE II      Java persistance APICycle de vie d’une entité
CHAPITRE IIJava persistance API42-l'obtention d'une instance de la classe EntityManager pour obtenir une instance de type EntityManager, il faut utiliser une fabrique de type EntityManagerFactory. Cette fabrique propose la méthode createEntityManager() pour obtenir une instance.Pour obtenir une instance de la fabrique, il utiliser la méthode statique createEntityManagerFactory() de la classe javax.persistence.Persistence qui attend en paramètre le nom de l'unité de persistence à utiliser. Elle va rechercher le fichier persistence.xml dans le classpath et recherche dans ce fichier l'unité de persistance dont le nom est fourni.
CHAPITRE IIJava persistance API43- L'utilisation de la classe EntityManagerLa méthodecontains()La méthode clear()la méthode flush() des méthodes de mise à jour persist(), merge() et remove() ne réalise pas d'actions immédiates dans la base de données sous jacente. L'exécution de ces actions est à la discrétion de l'EntityManager selon le FlushModeType (AUTO ou COMMIT).
CHAPITRE II      Java persistance API     431- L'utilisation de la classe EntityManager pour la création d'une occurrencePour insérer une nouvelle entité dans la base de données, il faut :   -Instancier une occurrence de la classe de l'entité Initialiser  les propriétés de l'entité    -Définir les relations de l'entité avec d'autres entités au besoin     -Utiliser la méthode persist() de l'EntityManageren passant en paramètre l'entité
CHAPITRE IIJava persistance API432- L'utilisation de la classe EntityManager pour rechercher des occurrences  -La recherche à partir de la clé primaire  -La recherche à partir d'une requête utilisant une syntaxe dédiée  -les méthodes find() et getReference433- L'utilisation de la classe EntityManager pour rechercher des données par requêtecreateQuery(), createNamedQuery() et. La méthodesetParameter()
CHAPITRE IIJava persistance API434- L'utilisation de la classe EntityManager pour modifier une occurrencePour modifier une entité existante dans la base de données, il faut : -Obtenir une instance de l'entité à Modifier les propriétés de l'entité   -il peut être nécessaire d'appeler la méthode flush() explicitement  435- L'utilisation de la classe EntityManager pour fusionner des données la méthode merge()
CHAPITRE IIJava persistance API 436- L'utilisation de la classe EntityManager pour supprimer une occurrencePour supprimer une entité existante dans la base de données, il faut : -Obtenir une instance de l'entité à supprimer  -Appeler la méthode remove() de l'EntityManager la méthode persist().437- L'utilisation de la classe EntityManager pour rafraîchir les données d'une occurrenceLa méthode refresh()
Java persistance API5-LE FICHIER PERSISTENCE.XML Ce fichier persistence.xml contient la configuration    de base pour le mapping notamment en fournissant les informations sur la connexion à la base de données à utiliser.   stocké dans le répertoire META-INF    La racine du document XML du fichier persistence.xml est le tag <persistence >
Java persistance API<persistence<persistence-unit name="ExpoJPA">     <provider>oracle.toplink.essentials.PersistenceProvider     </provider>     <mapping-file>  META-INF/orm.xml   </mapping-file><class>com.expose.jpa.Personne</class>    <properties><property                name="toplink.jdbc.driver“    value="com.mysql.jdbc.Driver" >        </property>        <property                name="toplink.jdbc.url”  value="jdbc:mysql://localhost:3306/expojpa">        </property>        <property	name="toplink.jdbc.user" value="root">        </property>     </properties></persistence-unit></persistence>
CHAPITRE IIIADO.Net1-INTRODUCTIONEn utilisant le .NET, Microsoft propose sa dernière technologie d'accès aux données ADO .Net. C'est une ensemble de classes permettant de récupérer et de manipuler des données et qui fait partie intégrante de la nouvelle plate forme appelée .Net Framework.Nous allons présenter les nouveautés ADO.Net, le modèle ADO.Net ainsi que les objets Connections, Command et DataReader.
CHAPITRE IIIADO.Net2-Les Avantages de l’ADO.netUne architecture plus optimisée
Un meilleur support du mode déconnecté
Un meilleur support de XMLCHAPITRE IIIADO.Net 3- L’espaces de noms
CHAPITRE IIIADO.Net4-Le Modèle Objet
CHAPITRE II Java persistance API4-1 Les Objets
CHAPITRE IIIADO.Net4-1-1 Objet ConnectionLa connectivité à SQL Server est assurée par l'objet SqlConnection de l'espace de noms System.Data.SqlClient. Le Framework .Net propose ainsi des objets de connexion différents en fonction du type de fournisseur de données choisi. Par exemple vous devrez utiliser l'objet OleDbConnection si votre fournisseur est un fournisseur OleDb.L'ouverture d'une connexion est réalisée par la méthode Open() et la fermeture par la méthode Close().
CHAPITRE IIIADO.Net4-1-2 L’objet CommandeLa création d'un objet Command nécessite l'instanciation d'un objet SqlCommand. Cet objet expose différentes méthodes Execute à utiliser selon le résultat attendu :La méthode ExecuteReader peut être utilisée pour récupérer un jeu d'enregistrements et retourne un objet DataReader.La méthode ExecuteScalar récupère une valeur unitaire.La méthode ExecuteNonQuery exécute une commande ne retournant pas de lignes.
CHAPITRE IIIADO.Net4-1-3 L’objet DataReaderL'objet DataReader permet de récupérer d'une source de données un flux en lecture seule en avant seulement (readonly, forwardonly). Il résulte de l'exécution de la méthode ExecuteReader sur un objet Command.L'objet DataReader ne stocke en mémoire qu'une seule ligne à la fois, permettant ainsi d'augmenter les performances d'une application et d'en réduire la charge.

Ado.net vs jpa

  • 1.
  • 2.
    Chapitre ILAPERSISTANCE DES OBJETS1-introduction2- le mapping O/R (objet/relationnel)3-l’architecture JAVA…..ADO.NET4-la persistance de données JAVA…..ADO.NET
  • 3.
    Chapitre ILAPERSISTANCE DES OBJETS1-introductionplusieurs types de base de données: Dl1,IMS: Hiérarchique Mysql:Relationnelle (RDBMS / SGBDR)Objet (ODBMS / SGBDO): db4objects Xindice:XML (XDBMS) La seconde catégorie est historiquement la plus répandue mais aussi une des moins compatible avec la programmation orienté objet.
  • 4.
    Chapitre ILAPERSISTANCE DES OBJETS2-LE MAPPING O/R (objet/relationnel) Assurer le mapping des tables avec les classes
  • 5.
    mettre enoeuvre des actions de type CRUD
  • 6.
  • 7.
    Proposer un langagede requêtes indépendant de la base de données cible et assurer une traduction en SQL natif
  • 8.
    Supporter différentesformes d'identifiants générés automatiquement par les bases de données (identity, sequence, ...)
  • 9.
    Proposer unsupport des transactions
  • 10.
    Assurer une gestiondes accès concurrents (verrou, deadlock, ...) Chapitre ILA PERSISTANCE DES OBJETSMAPPING OBJET RELATIONNEL (JPA):
  • 11.
    Chapitre ILAPERSISTANCE DES OBJETS3-L’ARCHITECTURE :31-l’architecture en java :Dans une architecture en couche: prévoir une couche dédiée aux accès aux données.La couche de persistence un niveau d'abstraction entre la base de données et l'utilisation qui en est faite. simplifier la couche métier qui utilise les traitements de cette couche masquer les traitements réalisés pour mapper les objets dans la base de données et vice et versa la couche métier ne contient aucune requête SQL, ni code de connexion ou d'accès à la base de données. La couche métier utilise les classes de la couche métier qui encapsulent ces traitements. Ainsi la couche métier manipule uniquement des objets pour les accès à la base de données.
  • 12.
    LA PERSISTANCE DESOBJETS32- l’architecture ado.net :Deux composants d'ADO.NET permettent d'accéder à des données et de les manipuler :Fournisseurs de données .NET FrameworkObjet DataSetLes Fournisseurs de données .NET Framework :L'objet Connection assure la connectivité avec une source de données. L'objet Command permet l'accès aux commandes de base de données pour retourner des données, modifier des données,. Le DataReader fournit un flux très performant de données en provenance de la source de données. Enfin, l'objet DataAdapter établit une passerelle entre l'objet DataSet et la source de données. Le DataAdapter utilise les objets Command pour exécuter des commandes SQL au niveau de la source de données afin d'une part de charger le DataSet de données, et d'autre part de répercuter dans la source de données les modifications apportées aux données contenues dans le DataSet.LeDataset ADO.NET est explicitement conçu pour un accès aux données indépendant de toute source de données. Il peut donc être utilisé avec plusieurs sources de données différentes, utilisé avec des données XML ou utilisé pour gérer des données locales de l'application..
  • 13.
  • 14.
    LA PERSISTANCE DESOBJETS4-LA PERSISTANCE DE DONNEES41-la persistence de données en java:JDBC : est l'acronyme de Java DataBaseConnectivity. C'est l'API standard pour permettre un accès à une base de donnéesJDO: est l'acronyme de Java Data Object : le but de cet API est de rendre transparent la persistance d'un objet. Il repose sur l'enrichissement de byte-code à la compilation.JAVA PERSISTANCE API ET EJB3.0:JPA (Java Persistence API) :C'est une synthèse standardisée des meilleurs outils du sujet (Hibernate, Toplink, ...)L'API repose sur l'utilisation d'entités persistantes sous la forme de POJOs
  • 15.
    un gestionnairede persistance (EntityManager) qui assure la gestion des entités persistantes
  • 16.
  • 17.
    la configuration viades fichiers xmlJPA peut être utilisé avec Java EE dans un serveur d'application mais aussi avec Java SE
  • 18.
    LA PERSISTANCE DESOBJETS42-la persistance de données-ADO.NET : 421- La persistance manuelle (ADO.NET, DataSet, …) 422- La persistance automatique:La persistance automatique est à l’essence du mapping objet/relationnelle. Cette approche consiste à prendre en charge le cycle de vie d’une entité de manière dynamique .L’utilisateur ne se préoccupe à aucun moment de l’état de son entité.La persistance automatique fournit les services suivants :- recherche, sauvegarde, mise à jour- concurrence- cache de 1er niveau et second niveau- navigation- chargement à la demande- transactions (éventuellement)
  • 19.
    Chapitre II:JAVA PERSISTANCEAPI 1- introduction 2- les entites le mapping entre le beanentite et la table le mapping de propriete complexe le mapping d’une entite sur plusieurs tables l’utilisation d’objets embarques dans les entites 3- le fichier de configuration du mapping4-L’UTILISATION DE BEAN ENTITE l’entity manager l’obtention d’une instance de la classe EntityManager l’utilisation de la classe EntityManager 5- le fichier persistence.xml
  • 20.
    CHAPITRE II Java persistance API1-INTRODUCTIONL'API Java Persistence repose sur des entités qui sont de simples POJOs annotés et sur un gestionnaire de ces entités (EntityManager) qui propose des fonctionnalités pour les manipuler (ajout, modification suppression, recherche). Ce gestionnaire est responsable de la gestion de l'état des entités et de leur persistance dans la base de données. 
  • 21.
    CHAPITRE II Javapersistance API2-LES ENTITESUn objet Java de type POJO mappé vers une table de la base de données grâce à des méta data via l'API Java Persistence est nommé bean entité (Entitybean). la classe du bean doit obligatoirement: être marquée avec l'annotation @javax.persistence.Entity Posséder une propriété déclarer comme clé primaire avec l'annotation @IdLe beanentity est composé de propriétés qui seront mappés sur les champs de la table de la base de données sous jacente. Chaque propriété encapsule les données d'un champ d'une table. Ces propriétés sont utilisables au travers de simple accesseurs (getter/setter).
  • 22.
    CHAPITRE II Java persistance API 21-le mapping entre le bean entité et la tableLa description du mapping entre le bean entité et la table peut être fait de deux façons : -Utiliser des annotations -Utiliser un fichier XML de mappingL'API propose plusieurs annotations pour supporter un mapping O/R assez complet. @javax.persistence.TablePréciser le nom de la table concernée par le mapping@javax.persistence.ColumnAssocié à un getter, il permet d'associer un champ de la table à la propriété@javax.persistence.IdAssocié à un getter, il permet d'associer un champ de la table à la propriété en tant que clé primaire@javax.persistence.GeneratedValueDemander la génération automatique de  la clé primaire au besoin
  • 23.
    CHAPITRE II Javapersistance API22-le mapping de proprieté complexe L'API Java persistence permet de mapper des colonnes qui concernent des données de type plus complexe que les types de base tel que les champs blob ou clob ou des objets.L'annotation @javax.persistence.Lob permet mapper une propriété sur une colonne de type Blob ou Clob selon le type de la propriété : Blob pour les tableaux de byte ou Byte ou les objets sérializablesClob pour les chaînes de caractères et les tableaux de caractères char ou Char L'annotation  @javax.persistence.Enumerated permet d'associer une propriété de type énumération à une colonne de la table sous la forme d'un numérique ou d'une chaîne de caractères.
  • 24.
    CHAPITRE II Javapersistance API23-le mapping d’une entité sur plusieurs tablesLe modèle objet et le modèle relationnel correspondant ne correspondent pas toujours car les critères de conception ne sont pas forcement les même. Ainsi, il est courant d'avoir une entité qui mappe des colonnes de plusieurs tables.L'annotation @javax.persistence.SecondaryTablepermet de préciser qu'une autre table sera utilisée dans le mapping.L'annotation @PrimaryKeyJoinColumn permet de préciser une colonne qui compose la clé primaire de la seconde table et entre dans la jointure avec la première table.
  • 25.
    CHAPITRE IIJava persistanceAPI24-l’utilisation d’objets embarqué dans les entités L'API Java Persistence permet d'utiliser dans les entités des objets Java qui ne sont pas des entités  mais qui sont agrégés dans l'entité et dont les propriétés seront mappées sur les colonnes correspondantes dans la table.La mise en oeuvre de cette fonctionnalité est similaire à celle utilisée avec l'annotation @EmbeddedId pour les clés primaires composées.La classe embarquée est un simple POJO qui doit être marquée avec l'annotation @javax.persistence.Embeddable
  • 26.
    CHAPITRE II Javapersistance API3-LE FICHIER DE CONFIGURATION DE MAPPINGest aussi possible de définir le mapping dans un fichier de mapping nommé par défaut orm.xml stocké dans le répertoire META-INF.Ce fichier orm.xml est un fichier au format xml. L'élément racine est le tag <entity-mappings>.Pour chaque entité, il faut utiliser un tag fils <entity>. Ce tag possède deux attributs :Class qui permet  préciser le nom pleinement qualifié de la classe de l'entité Access qui permet de préciser le type d'accès aux données (PROPERTY pour un accès via les getter/setter ou FIELD pour un accès via les champs). La déclaration de la clé primaire se fait dans un tag <id> fils d'un tag <attributes>. Ce tag <id> possède un attribut nommé name qui permet de préciser le nom du champ qui est la clé primaire.
  • 27.
    CHAPITRE IIJava persistanceAPI4-L’UTILISATION DE BEAN ENTITEToutes les actions de persistance sur ces objets sont réalisées grâce à un objet dédié de l'API : l'EntityManager.Un contexte de persistance (persistencecontext) est un ensemble d'entités géré par un EntityManager.41- l’EntityManagerLes interactions entre la base de données et les beans entité sont assurées par un objet de type javax.persistence.EntityManager : il permet de lire et rechercher des données mais aussi de les mettre à jour (ajout, modification, suppression). L'EntityManager est donc au coeur de toutes les actions de persistance.Un EntityManager gère un ensemble défini de beans entité nommé persistence unit. La définition d'un persistence unit est assurée dans un fichier de description nommé persistence.xml.
  • 28.
    CHAPITRE II Java persistance APICycle de vie d’une entité
  • 29.
    CHAPITRE IIJava persistanceAPI42-l'obtention d'une instance de la classe EntityManager pour obtenir une instance de type EntityManager, il faut utiliser une fabrique de type EntityManagerFactory. Cette fabrique propose la méthode createEntityManager() pour obtenir une instance.Pour obtenir une instance de la fabrique, il utiliser la méthode statique createEntityManagerFactory() de la classe javax.persistence.Persistence qui attend en paramètre le nom de l'unité de persistence à utiliser. Elle va rechercher le fichier persistence.xml dans le classpath et recherche dans ce fichier l'unité de persistance dont le nom est fourni.
  • 30.
    CHAPITRE IIJava persistanceAPI43- L'utilisation de la classe EntityManagerLa méthodecontains()La méthode clear()la méthode flush() des méthodes de mise à jour persist(), merge() et remove() ne réalise pas d'actions immédiates dans la base de données sous jacente. L'exécution de ces actions est à la discrétion de l'EntityManager selon le FlushModeType (AUTO ou COMMIT).
  • 31.
    CHAPITRE II Java persistance API  431- L'utilisation de la classe EntityManager pour la création d'une occurrencePour insérer une nouvelle entité dans la base de données, il faut : -Instancier une occurrence de la classe de l'entité Initialiser  les propriétés de l'entité -Définir les relations de l'entité avec d'autres entités au besoin -Utiliser la méthode persist() de l'EntityManageren passant en paramètre l'entité
  • 32.
    CHAPITRE IIJava persistanceAPI432- L'utilisation de la classe EntityManager pour rechercher des occurrences  -La recherche à partir de la clé primaire -La recherche à partir d'une requête utilisant une syntaxe dédiée -les méthodes find() et getReference433- L'utilisation de la classe EntityManager pour rechercher des données par requêtecreateQuery(), createNamedQuery() et. La méthodesetParameter()
  • 33.
    CHAPITRE IIJava persistanceAPI434- L'utilisation de la classe EntityManager pour modifier une occurrencePour modifier une entité existante dans la base de données, il faut : -Obtenir une instance de l'entité à Modifier les propriétés de l'entité -il peut être nécessaire d'appeler la méthode flush() explicitement  435- L'utilisation de la classe EntityManager pour fusionner des données la méthode merge()
  • 34.
    CHAPITRE IIJava persistanceAPI 436- L'utilisation de la classe EntityManager pour supprimer une occurrencePour supprimer une entité existante dans la base de données, il faut : -Obtenir une instance de l'entité à supprimer -Appeler la méthode remove() de l'EntityManager la méthode persist().437- L'utilisation de la classe EntityManager pour rafraîchir les données d'une occurrenceLa méthode refresh()
  • 35.
    Java persistance API5-LEFICHIER PERSISTENCE.XML Ce fichier persistence.xml contient la configuration de base pour le mapping notamment en fournissant les informations sur la connexion à la base de données à utiliser. stocké dans le répertoire META-INF La racine du document XML du fichier persistence.xml est le tag <persistence >
  • 36.
    Java persistance API<persistence<persistence-unitname="ExpoJPA"> <provider>oracle.toplink.essentials.PersistenceProvider </provider> <mapping-file> META-INF/orm.xml </mapping-file><class>com.expose.jpa.Personne</class> <properties><property name="toplink.jdbc.driver“ value="com.mysql.jdbc.Driver" > </property> <property name="toplink.jdbc.url” value="jdbc:mysql://localhost:3306/expojpa"> </property> <property name="toplink.jdbc.user" value="root"> </property> </properties></persistence-unit></persistence>
  • 37.
    CHAPITRE IIIADO.Net1-INTRODUCTIONEn utilisantle .NET, Microsoft propose sa dernière technologie d'accès aux données ADO .Net. C'est une ensemble de classes permettant de récupérer et de manipuler des données et qui fait partie intégrante de la nouvelle plate forme appelée .Net Framework.Nous allons présenter les nouveautés ADO.Net, le modèle ADO.Net ainsi que les objets Connections, Command et DataReader.
  • 38.
    CHAPITRE IIIADO.Net2-Les Avantagesde l’ADO.netUne architecture plus optimisée
  • 39.
    Un meilleur supportdu mode déconnecté
  • 40.
    Un meilleur supportde XMLCHAPITRE IIIADO.Net 3- L’espaces de noms
  • 41.
  • 42.
    CHAPITRE II Javapersistance API4-1 Les Objets
  • 43.
    CHAPITRE IIIADO.Net4-1-1 ObjetConnectionLa connectivité à SQL Server est assurée par l'objet SqlConnection de l'espace de noms System.Data.SqlClient. Le Framework .Net propose ainsi des objets de connexion différents en fonction du type de fournisseur de données choisi. Par exemple vous devrez utiliser l'objet OleDbConnection si votre fournisseur est un fournisseur OleDb.L'ouverture d'une connexion est réalisée par la méthode Open() et la fermeture par la méthode Close().
  • 44.
    CHAPITRE IIIADO.Net4-1-2 L’objetCommandeLa création d'un objet Command nécessite l'instanciation d'un objet SqlCommand. Cet objet expose différentes méthodes Execute à utiliser selon le résultat attendu :La méthode ExecuteReader peut être utilisée pour récupérer un jeu d'enregistrements et retourne un objet DataReader.La méthode ExecuteScalar récupère une valeur unitaire.La méthode ExecuteNonQuery exécute une commande ne retournant pas de lignes.
  • 45.
    CHAPITRE IIIADO.Net4-1-3 L’objetDataReaderL'objet DataReader permet de récupérer d'une source de données un flux en lecture seule en avant seulement (readonly, forwardonly). Il résulte de l'exécution de la méthode ExecuteReader sur un objet Command.L'objet DataReader ne stocke en mémoire qu'une seule ligne à la fois, permettant ainsi d'augmenter les performances d'une application et d'en réduire la charge.

Notes de l'éditeur

  • #36 Une fois la connexion vers une base de données est effectuée, vous pouvez exécuter une requête et récupérer son résultat en utilisant l&apos;objet Command.