1 INF7115-Base de données Présentation La persistance avec JDO Kerlyne FOSTINE Figaro LUC.

Slides:



Advertisements
Présentations similaires
Présentation de frameworks J2EE
Advertisements

Réaliser en Java un programme client d’une Base de Données
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Exposé de Système - Informatique et Réseau
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Programmer en JAVA par Tama
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Introduction aux Entity Beans
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Servlet JAVA.
Connexion base de données
Introduction aux Session Beans
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
HIBERNATE Framework de mapping objet-relationnel
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
JDBC Java Data Base Connectivity. Java DataBase Connectivity (JDBC) Cette API est développée par Sun en collaboration avec les grands éditeurs de SGBD.
Principes de persistance dans les applications orienté objet
JDBC ou comment manipuler une base de données en Java ?
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Mapping Objet-Relationnel
29/01/09SpringFramework1 SpringFramework Alice GARCIA Fabien FAGOAGA Option Génie Logiciel 3 ème année ENSEIRB.
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
COURS DE PROGRAMMATION ORIENTEE OBJET :
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Proxy et plus Cnam Paris jean-michel Douin, douin au cnam point fr
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Une introduction à Java
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
Java Enterprise Edition, anciennement J2EE
JDO Université du Québec à Montréal INF7115: Bases de Données Professeur: Robert Godin Étudiants: Naby D. Soumah Abdeltif Harrouchi Ovidiu Nacu Lundi.
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
Cours 7 Classes locales Clonage Divers: tableaux.
HIBERNATE Mapping Objet / base de données relationnelle
Chapitre 2 Persistance de données De Hibernate au standard JPA 1.0
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Java TM Data Objects Présentation et Analyse Par : Fouad KHELOUIATI Walid KTATA Ghislain NGANTCHAHA.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Tutorat en bio-informatique
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Les sockets.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
Héritage Conception par Objet et programmation Java
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Modèle à objets et sérialisation Olivier ChamlaFrançois Chastanet.
JAVA et l'orientation objet Jean-Jacques LE COZ. Encapsulation L'encapsulation est le concept de masquer l'implémentation de la classe De ne permettre.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Transcription de la présentation:

1 INF7115-Base de données Présentation La persistance avec JDO Kerlyne FOSTINE Figaro LUC

2 INF7115-Base de données Plan 1.Introduction à JDO 2. Architecture 3. Gestion des transactions 4. Les interfaces et les classes JDO 5. Les requêtes JDO 6. Exemple d’implémentation 7. Références

3 INF7115-Base de données 1. Introduction à JDO  JDO : Java Data Object  Persistance  Mapping transparente des instances Java  Persistance universelle  Mise à jour implicite des données  Modélisation d’objets sans contrainte  Réduction du temps de développement

4 INF7115-Base de données Méthodes de persistance  Sérialisation (les systèmes de fichiers)  JDBC (les bases de données)  Les beans d’entité (BMP, CMP)  JDO

5 INF7115-Base de données JDO face aux autres méthodes de persistance

6 INF7115-Base de données 2. Architecture Architecture générale

7 INF7115-Base de données JDO dans un environnement non géré  Usage deux tiers  Javax.jdo.PersistenceManager  Javax.spi.PersistenceCapable

8 INF7115-Base de données JDO dans un environnement géré par un serveur d’application J2EE

9 INF7115-Base de données Les implémentation et les vendeurs JDO  Versant (Versant Open Access JDO)  Xcalia (LIDO)  SolarMetric (KODO JDO Entreprise ou Standard Édition)  Sun (JSR-12)

10 INF7115-Base de données Modèles d’objets persistants

11 INF7115-Base de données Instances et cycle de vie  Transient : Instanciation, seulement en mémoire centrale  New : Déclaré persistant pour la première fois  Persistent : Opposé de Transient  Hollow : Pas de lecture dans la source de données  Dirty : Modification des champs au cours de la transaction  Deleted : Effacé au cours de la transaction  Transactional : Peut participer à une transaction  Clean : Pas de modification après la lecture dans une source de données

12 INF7115-Base de données Cycle de vie des instances (Suite)

13 INF7115-Base de données Cycle de développement des JDO  Descripteur de persistance  JDO Enhancer

14 INF7115-Base de données 3. Gestion des transactions  Caractéristiques des transactions (ACID)  Stratégies de transactions  Stratégie pessimiste de transaction  Courte durée de vie  Blocage pendant toute la durée de la transaction  Stratégie optimiste de transaction  Longue durée de vie  Réduction des blocages  Augmentation de la concurrence

15 INF7115-Base de données 4. Les interfaces et les classes JDO  Packages  javax.jdo  javax.jdo.spi  Classe  JDOHelper  Interface  PersistenceManager  PersistenceCapable  PersistenceManagerFactory  Extent  Transaction

16 INF7115-Base de données 5. Les requêtes JDO  SQL : les bases de données relationnelles  OQL : les bases de données objet  EJBQL : les beans d’entité  JDOQL : nouveau langage spécifique à JDO

17 INF7115-Base de données Interface de requête JDOQL

18 INF7115-Base de données Exemple de requête JDOQL import java.util.Collection; import java.util.Iterator; import javax.jdo.*; public class SimpleQuery { public static void main() { JDOBootstrap bootstrap = new JDOBootstrap(); PersistenceManagerFactory pmf = bootstrap.getPersistenceManagerFactory(); PersistenceManager pm = pmf.getPersistenceManager(); Transaction t = pm.currentTransaction(); t.begin(); Extent partnerExt = pm.getExtent(BusinessPartner.class, true); Query q = pm.newQuery(partnerExt); Collection c = (Collection) q.execute(); Iterator i = c.iterator(); System.out.println("Listing all BusinessPartner instances:"); while(i.hasNext()) { Object o = i.next(); System.out.println(o); } System.out.println("Done."); q.close(c); t.commit(); }

19 INF7115-Base de données 6. Exemple d’implémentation (Médica Inc)  Médica INC, une entreprise qui permet de commander des produits en ligne.

20 INF7115-Base de données Les classes Java package com.gestionCommande; import java.util.*; public class Client{ private String nom; private String prenom; private String telephone; private String adresse; private String ; private String fax; private String utilisateur private String motDePasse; private Set commandes; private Client(){ } public Client(String nom, String prenom, String telephone, String adresse, String , String fax, String utilisateur, String motDePasse){ this.nom=nom; this.prenom=prenom; this.telephone=telephone; this.adresse=adresse; commandes=new HashSet(); } public String getNom(){ return nom; } public void setNom(String nom){ this.nom=nom; } ….

21 INF7115-Base de données Descripteur de persistence <!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "

22 INF7115-Base de données Les classes Java (Suite) package com.gestionCommande; import java.io.*; import java.util.*; import javax.jdo.*; public class ApplicationEnregistrerClient(){ public static void main(String[] args){ try{ InputStream propertyStream=new FileInputStream("jdo.properties"); Properties jdoproperties=new Properties(); jdoproperties.load(propertieStream); jdoproperties.putAll(new HashMap()); PersistenceManagerFactory pmf=JDOHelper.getPersistenceManagerFactory(jdoproperties); PersistenceManager pm=pmf.getPersistenceManager(); Transaction tx=pm.currentTransaction(); tx.begin(); Client cl=new Client("Pierre", "Judith", " ", "2384 Rue St-Laurent, Montreal QC H2W 3E2", " ", "papa", "maman"); pm.makePersistent(cl); tx.commit(); } catch(Exception e){ e.printStackTrace(System.err); System.exit(-1); }

23 INF7115-Base de données Conclusion  JDO est très jeune et n’est pas encore supporté par les plus grands acteurs du marché. Étant une API standard déjà implémentée par une quinzaine d’éditeurs, est présenté pour être intégré à J2EE 1.5. De ce fait, l’ensemble des éditeurs des serveurs applicatifs devront en fournir une implémentation. Les serveur JBOSS a par exemple déjà commencé le travail. Des acteurs importants comme Oracle ou même SAP ont commencé à travailler sur l’implémentation JDO. Donc, les bases de données relationnelles tiennent toujours fortement avec JDBC.

24 INF7115-Base de données 7. Références  Floyd Marinescu. Design Patterns EJB. Vuibert  Robin M. Ross. Java Data Objects. Addison Wesley  David Jordan & Craig Russell. Java Data Objects. O’Reilly.  George Reese. Java Database Best Practices. O’Reilly  Java Data Objects Specification JSR12. Sun Microsystems Inc.  FastObjects J1 JDO Programmer’s Guide. Poet Software.  Kodo JDO Developer’s Guide. Solarmetric Inc      

25 INF7115-Base de données Merci.

26 INF7115-Base de données Questions ?