Ado.net vs jpa
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Ado.net vs jpa

on

  • 1,137 views

 

Statistics

Views

Total Views
1,137
Views on SlideShare
1,137
Embed Views
0

Actions

Likes
1
Downloads
61
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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'objet Command.

Ado.net vs jpa Presentation Transcript

  • 1. ADO.NET et JPA
  • 2. Chapitre ILA PERSISTANCE DES OBJETS
    1-introduction
    2- le mapping O/R (objet/relationnel)
    3-l’architecture
    JAVA…..ADO.NET
    4-la persistance de données
    JAVA…..ADO.NET
  • 3. Chapitre ILA PERSISTANCE DES OBJETS
    1-introduction
    plusieurs 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 ILA PERSISTANCE DES OBJETS
    2-LE MAPPING O/R (objet/relationnel)
    • Assurer le mapping des tables avec les classes
    • 5. mettre en oeuvre des actions de type CRUD
    • 6. Eventuellementpermettrel'héritage des mappings
    • 7. Proposer un langage de requêtes indépendant de la base de données cible et assurer une traduction en SQL natif
    • 8. Supporter différentes formes d'identifiants générés automatiquement par les bases de données (identity, sequence, ...)
    • 9. Proposer un support des transactions
    • 10. Assurer une gestion des accès concurrents (verrou, deadlock, ...)
  • Chapitre ILA PERSISTANCE DES OBJETS
    MAPPING OBJET RELATIONNEL (JPA):
  • 11. Chapitre ILA PERSISTANCE DES OBJETS
    3-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 DES OBJETS
    32- 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 Framework
    Objet DataSet
    Les 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. LA PERSISTANCE DES OBJETS
  • 14. LA PERSISTANCE DES OBJETS
    4-LA PERSISTANCE DE DONNEES
    41-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ées
    JDO:
    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 gestionnaire de persistance (EntityManager) qui assure la gestion des entités persistantes
    • 16. l'utilisationd'annotations
    • 17. la configuration via des fichiers xml
    JPA peut être utilisé avec Java EE dans un serveur d'application mais aussi avec Java SE
  • 18. LA PERSISTANCE DES OBJETS
    42-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 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 mapping
    4-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 API
    1-INTRODUCTION
    L'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 Java persistance API
    2-LES ENTITES
    Un 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 @Id
    Le 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 table
    La 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 mapping
    L'API propose plusieurs annotations pour supporter un mapping O/R assez complet.
    @javax.persistence.Table
    Préciser le nom de la table concernée par le mapping
    @javax.persistence.Column
    Associé à un getter, il permet d'associer un champ de la table à la propriété
    @javax.persistence.Id
    Associé à un getter, il permet d'associer un champ de la table à la propriété en tant que clé primaire
    @javax.persistence.GeneratedValue
    Demander la génération automatique de  la clé primaire au besoin
  • 23. CHAPITRE II Java persistance API
    22-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érializables
    Clob 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 Java persistance API
    23-le mapping d’une entité sur plusieurs tables
    Le 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 persistance API
    24-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 Java persistance API
    3-LE FICHIER DE CONFIGURATION DE MAPPING
    est 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 persistance API
    4-L’UTILISATION DE BEAN ENTITE
    Toutes 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’EntityManager
    Les 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 API
    Cycle de vie d’une entité
  • 29. CHAPITRE IIJava persistance API
    42-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 persistance API
    43- L'utilisation de la classe EntityManager
    La 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 occurrence
    Pour 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 persistance API
    432- 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 getReference
    433- L'utilisation de la classe EntityManager pour rechercher des données par requête
    createQuery(), createNamedQuery() et.
    La méthodesetParameter()
  • 33. CHAPITRE IIJava persistance API
    434- L'utilisation de la classe EntityManager pour modifier une occurrence
    Pour 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 persistance API
     436- L'utilisation de la classe EntityManager pour supprimer une occurrence
    Pour 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 occurrence
    La méthode refresh()
  • 35. Java persistance API
    5-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 >
  • 36. 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>
  • 37. CHAPITRE IIIADO.Net
    1-INTRODUCTION
    En 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.
  • 38. CHAPITRE IIIADO.Net
    2-Les Avantages de l’ADO.net
    • Une architecture plus optimisée
    • 39. Un meilleur support du mode déconnecté
    • 40. Un meilleur support de XML
  • CHAPITRE IIIADO.Net
     3- L’espaces de noms
  • 41. CHAPITRE IIIADO.Net
    4-Le Modèle Objet
  • 42. CHAPITRE II Java persistance API
    4-1 Les Objets
  • 43. CHAPITRE IIIADO.Net
    4-1-1 Objet Connection
    La 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.Net
    4-1-2 L’objet Commande
    La 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.Net
    4-1-3 L’objet DataReader
    L'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.
  • 46. CHAPITRE IIIADO.Net
    4-1-4 L’objet DataSet
    Le Data Set est un objet qui réside en mémoire et qui correspond à une copie locale des données d'une telle base de données. D’abord, il contient les tables d'une base, leurs relations et les contraintes appliquées aux données.
  • 47. CHAPITRE IIIADO.Net
    4-1-4-1 Le Modèle Objet d’un DataSet
  • 48. CHAPITRE IIIADO.Net
    4-1-4-1-1 La Collection DataTableCollection
    Cette collection peut contenir de zéro à n objets de type DataTable.
    Chaque objet DataTable représente une table d'une source de données. Chaque DataTable est constituée d'une collection Columns et d'une collection Rows qui peuvent contenir respectivement de zéro à n objets DataRow et DataColumn
  • 49. CHAPITRE IIIADO.Net
    4-1-4-1-2 La Collection DataRelationCollection
    Cette collection peut contenir de zéro à n objets de type DataRelation. Un objet DataRelation défini une relation parent-enfant entre deux tables à partir des valeurs des clés étrangères.
  • 50. CHAPITRE IIIADO.Net
    4-1-4-1-3 La Collection DataAdapter
    Un objet DataSet doit être capable d'interagir avec une ou plusieurs sources de données. Pour réaliser cette action le Framework Microsoft .Net fournit un objet nommé DataAdapter.
    L'objet DataAdapter sert de liaison entre un objet DataSet et une source de données.
  • 51. CHAPITRE IIIADO.Net
    4-1-4-1-4 La Collection DataAdapter
    Un objet DataSet doit être capable d'interagir avec une ou plusieurs sources de données. Pour réaliser cette action le Framework Microsoft .Net fournit un objet nommé DataAdapter.
    L'objet DataAdapter sert de liaison entre un objet DataSet et une source de données.
  • 52. CHAPITRE IIIADO.Net
    4-1-4-1-4-1 Les Propriétés du DataAdapter
  • 53. CHAPITRE IIIADO.Net
    4-1-4-1-4-2 La fonctionnement du DataAdapter
  • 54. Question et Réponse