JPA. «mapping» objet-relationnel en java Serge Rosmorduc

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "JPA. «mapping» objet-relationnel en java Serge Rosmorduc"

Transcription

1 JPA «mapping» objet-relationnel en java Serge Rosmorduc 1

2 PLAN Présentation générale (mise en place, mapping, jpql, API) utilisation de l API Cycle de vie Mapping objet-relationnel JPQL 2

3 MAPPING OBJET- RELATIONNEL résout le «object-relational mismatch» Java Persistence API : Spécification J2EE plusieurs implémentations : Hibernate, TopLink... 3

4 BASES DE JPA 4

5 Persistence Unit: paramétrage d accès à une base Paramétrage logiciel possible normalement, configuration dans META-INF/persistence.xml <?xml version="1.0" encoding="utf-8"?>! <persistence version="1.0"!! xmlns="http://java.sun.com/xml/ns/persistence"!! xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"!! xsi:schemalocation="http://java.sun.com/xml/ns/persistence ns/persistence/persistence_1_0.xsd">! <!-- Definition and name of a "persistence unit" -->! <persistence-unit name="essainetbeanspu! <!-- List of entity classes -->! <class>essainetbeans.model.prof</class>! <class>essainetbeans.model.cours</class>! <!-- Connection information -->! <properties>! <property name="hibernate.connection.url" value="jdbc:derby://localhost:1527/cnam"/>! <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.clientdriver"/>! <property name="hibernate.connection.password" value="test"/>! <property name="hibernate.connection.username" value="test"/>! <property name="hibernate.cache.provider_class" value="org.hibernate.cache.nocacheprovider"/>! </properties>! </persistence-unit>! </persistence>! 5

6 ENTITÉS/OBJETS PERSISTANTS doivent avoir un identifiant les modifications apportées à l objet en mémoire seront répercutées dans la base annotation ou XML pour associer données java et données relationnelles utilisation de conventions pour réduire le travail (association implicite) 6

7 DÉCLARATION D OBJET PERSISTANT exemple de déclaration XML (pour Hibernate) ou annotations (plus simples) <!DOCTYPE hibernate-mapping PUBLIC! "-//Hibernate/Hibernate Mapping DTD 3.0//EN"! "http://hibernate.sourceforge.net/hibernatemapping-3.0.dtd">! <hibernate-mapping package="demohibernate.model">!! <class name="article">!!! <id name="id" column="idarticle">!!!! <generator class="native"/> <!-- ou increment -->!!! </id>!!! <property name="designation" column="description"/>!!! <property name="prix"></property>!! </class>! </hibernate-mapping>! 7

8 ANNOTATIONS = "PROF")! public class Prof{! // Mandatory definition of = = "PROF_ID")! private Integer = "PROF_NAME")! private String = "PROF_FIRST_NAME")! private String proffirstname;!! // au minimum un constructeur par défaut(éventuellement privé)! public Prof() {! }!!... rest of the class: POJO style.! 8

9 REMARQUE Le ID est obligatoire il peut être composite (rarement) beaucoup de possibilités Le setter de l ID peut être privé. 9

10 DÉCLARATION DES ENTITÉS La liste des entités doit apparaître dans la définition du persistance Unit Quand on utilise un environnement j2ee, on peut aussi se contenter de fournir le nom du package qui contient les entités. 10

11 nom de la PU // création d un EntityManager factory EntityManagerFactory entitymanagerfactory = Persistence.createEntityManagerFactory("EssaiNetbeansPU");! // Création de l entity manager EntityManager entitymanager= entitymanagerfactory.createentitymanager();! // On commence une transaction EntityTransaction entitytransaction=! entitymanager.gettransaction();! entitytransaction.begin();! // On crée une entité Prof p= new Prof();! p.setproffirstname("jean-michel");! p.setprofname("douin");!! // On la sauve entitymanager.persist(p);! // On valide la transaction (commit) entitytransaction.commit();! // On ferme!!!! entitymanager.close();! entitymanagerfactory.close(); DÉMO SIMPLE 11

12 MISE À JOUR DES OBJETS EntityManagerFactory entitymanagerfactory =! Persistence.createEntityManagerFactory("EssaiNetbeansPU");! EntityManager entitymanager=! entitymanagerfactory.createentitymanager();! EntityTransaction entitytransaction= entitymanager.gettransaction();! entitytransaction.begin();! // Trouver l objet «Compteur» d ID 0! Compteur compteur= entitymanager.find(compteur.class, 0);! // l afficher et le modifier...! System.out.println("*** VALEUR : "+compteur.getvaleur());! compteur.setvaleur(compteur.getvaleur() + 1 );! //C est tout! maintenant on commit et on ferme.! entitytransaction.commit();! entitymanager.close();! entitymanagerfactory.close(); 12

13 ANNOTATIONS AVANCÉES 13

14 LIENS UNIDIRECTIONNELS Student University u * 1 University Plus simple à réaliser en java (un seul côté à maintenir) couplage réduit Student Set<Course> courses * * Course 1..* ou n..n 14

15 LIENS UNIDIRECTIONNELS MANY-TO-ONE Student University u * 1 public class Student implements = "STUDENT_ID") private Long studentid; STUDENT STUDENT_ID private University university; #UNIVERSITY_ID UNIVERSITY_ID

16 LIENS UNIDIRECTIONNELS MANY-TO-ONE Student University u * 1 University NOTE : la classe java qui gère la relation correspond à la table qui contient la clef étrangère. Ici, c est STUDENT STUDENT STUDENT_ID #UNIVERSITY_ID UNIVERSITY UNIVERSITY_ID 16

17 LIENS UNIDIRECTIONNELS MANY-TO-MANY Student Set<Course> courses * * Course STUDENT STUDENT_ID NAME STUDENT_COURSE SC_STUDENT_ID SC_COURSE_ID COURSE COURSE_ID 17

18 MANY-TO-MANY ONE-WAY LINK Student Set<Course> * * Course STUDENT STUDENT_ID STUDENT_COURSE SC_STUDENT_ID COURSE NAME SC_COURSE_ID public class Student implements = "STUDENT_COURSE", joincolumns = "SC_STUDENT_ID"}, inversejoincolumns = "SC_COURSE_ID")) private Collection<Course> courses;... } 18

19 LIENS BIDIRECTIONNELS Student University u * 1 University Set<Student> students Deux points à considérer: annotation + code java Deux liens à maintenir en java Toute modification d un côté doit être répercutée de l autre Student Set<Course> courses * * Course Set<Student> students 19

20 UN ESSAI public class Student implements private University university;... public void setuniversity(university u) { this.university= u; this.university.addstudent(this); public class University implements Serializable private Set<Student> students;! public void addstudent(student s) { students.add(s); s.setuniversity(this); } 20 récursion infinie

21 QUE DOIVENT FAIRE LES MÉTHODES? Enlever, si nécessaire le lien précédent un étudiant qui change d université ne doit pas apparaître dans la liste des étudiants de son ancienne université Mettre en place le lien, des deux côtés Éviter cependant la récursion infinie 21

22 SOLUTION 1: CASSER public class Student implements private University university;... public void setuniversity(university u) { if (this.university!= null) { this.university.removestudent(this); } this.university= u; this.university.addstudent(this); } Maître SYMÉTRIE pas public! appelé seulement par le côté maître public class University implements Serializable private Set<Student> students;! void addstudent(student s) { students.add(s); }! void removestudent(student s) { students.remove(s); } Esclave

23 SOLUTION 2: public class Student implements private University university;... public void setuniversity(university u) { if (this.university!= null) { if (this.university.equals(u)) return; this.university.removestudent(this); } this.university= u; if (u!= null) this.university.addstudent(this); public class University implements Serializable private Set<Student> students;! public void addstudent(student s) { if (students.contains(s)) return; students.add(s); }! public void removestudent(student s) { students.remove(s); s.setuniversity(null); // pas forcément } 23

24 N..1 BIDIRECTIONNEL Student University u * 1 University Set<Student> public class Student implements "UNIVERSITY_ID") private University university; attribut secondaire Note: «university» : nom de la variable de l autre côté (dans public class University implements Serializable private Set<Student> students; 24

25 LIENS N..N BIDIRECTIONNELS Student Set<Course> courses * * Course Set<Student> public class Student implements = "STUDENT_COURSE", joincolumns = "SC_STUDENT_ID"), inversejoincolumns = "SC_COURSE_ID")) private Collection<Course> courses;... } Côté public class Course implements Serializable "courses") private Collection<Student> students;... } 25

26 @Entity public class Student implements = "STUDENT_COURSE", joincolumns = "SC_STUDENT_ID"}, inversejoincolumns = "SC_COURSE_ID")) private Collection<Course> courses;! public void addcourse(course c) { courses.add(c); c.addstudent(this); // addstudent PAS public! }... public class Course implements Serializable "courses") private Collection<Student> students;...! void addstudent(student s) { // PAS public! students.add(s); } } 26

27 AUTRE public class Student implements Serializable private Collection<Course> courses; public void addcourse(course c) { if (! courses.contains(c)) { courses.add(c); c.addstudent(this); } public class Course implements Serializable "courses") private Collection<Student> students;... void addstudent(student s) { if (! students.contains(s)) { students.add(s); s.addcourse(this); } } } le test évite la récursion infinie 27

28 RÉSUMÉ Quelques patterns assez répétitifs plein de possibilités: maps, etc plus simple si vous suivez la logique de JPA Pour les liens bidirectionnels, vous êtes en charge de la cohérence des liens 28

29 RECHERCHES : JPQL Langage OO similaire à SQL (mais différent) // Chercher tous les profs dont le nom commence par «T».!! List<Prof> listeprofs =! em.createquery(! "select p from Prof p where p.name like :name"! ).setparameter("name", "T%")!.getResultList();!! for (Prof p: listeprofs) {! System.out.println(p);! }!! 29

30 API DE RECHERCHE! T find(class<t> c, Object id) : retourne l unique entrée de classe c, et d indentifiant id createquery(string jpql) : crée une requête à partir d un texte en jpql Classe Criteria: construction modulaire d un objet requête 30

31 FIND Méthode de EntityManager Prof p= em.find(prof.class, 2L); retourne le prof d id 2 (long) ou null si l objet n existe pas 31

32 CREATEQUERY Méthode de EntityManager Retourne un objet Query on peut injecter des paramètre on peut récupérer un ou plusieurs résultats 32

33 CREATEQUERY List<Prof> listeprofs =! em.createquery(! "select p from Prof p where p.name = :name"! + " and p. surname like :surname"!! ).setparameter("name", nom)!!.setparameter("surname", prenom)!.getresultlist();! «:surname» : nom d un paramètre à remplacer setparameter: permet de donner une valeur à un paramètre getresultlist(): renvoie la liste des résultats 33

34 MÉTHODE DE RÉCUPÉRATION DU RÉSULTAT getresultlist(): renvoie une liste (éventuellement vide) getsingleresult(): renvoie un résultat unique exceptions pour getsingleresult: NoResultException: si pas de résultat NonUniqueResultException si plus d un résultat 34

35 CRITERIA Construction petit à petit de la requête Plus sûr pour le typage Plus commode quand la structure des requête n est pas fixe (nombre variable de conditions) 35

36 création d un builder CRITERIA CriteriaBuilder builder = em.getcriteriabuilder();! CriteriaQuery<Student> cq = builder.createquery(student.class);! Root<Student> root = cq.from(student.class);! cq.where(builder.equal(root.get("name"), "Turing"));! List<Student> l = em.createquery(cq).getresultlist(); On crée et exécute la requête Equivaut à s.name= "Turing" 36 retournera un Student Cherche dans la classe Student

37 JPQL forme générale : select data from source where conditions select : liste d identifiants d objets/de références à des données from : déclare les identifiants, et explique de quelles sources ils proviennent where : conditions exemple simple: select p from Person p where p.name = 'Turing'; 37

38 RÉSULTAT DE REQUÊTES Si le select est une unique donnée de type T: une liste d éléments T. Si le select contient plusieurs valeurs: une liste de tableaux d objets select s.name, s.age from Student s; retourne une liste d Object[ ], où t[0] est le nom de l étudiant (String), et t[1] est l âge de l étudiant, un Integer. 38

39 PROPRIÉTÉS DES OBJETS On peut y accéder dans la requête, en cascade si besoin: select c from Command c where c.client.address.city = 'Paris' 39

40 JOINS nécessaires quand une propriété est une collection. permet de nommer un élément d une collection select p from University u join u.professors p where u.name= 'cnam'; select u from University u join u.professors p where p.name= 'Trèves'; 40

41 JOINS On peut les combiner: select u from University u join u.professors p1 join u.professors p2 where p1.name= 'Pollet' and p2.name= 'Trèves' 41

42 JOINS on peut les mettre en cascade select t from University u join u.department d join d.teams t where u.name= 'cnam'and t.domain='math'; 42

43 CARTESIAN PRODUCT Une requête peut porter sur des classes indépendantes, et faire l éventuelle jointure dans le where : select u, c from University u, Company c where u.address.town= c.address.town; 43

44 OPÉRATEUR «MEMBER OF» Opérateur entre un élément e et une collection c, vrai si e membre de c Exemple: select p from Professor p, University u where p member of u.professors 44

45 IL Y A PLUS sous-select any ou all comme opérateur sur les sous-select fonctions d agrégats (moyenne, somme ) 45

46 CYCLE DE VIE DES OBJETS Doesn t exist find(),! queries... Database new E() closing EM,! clear()! serialize,! hibernate evict() New persist(e) merge(e) Managed remove(e) flush(),! commit() Detached Removed (From oracle documentation) 46

47 CYCLE DE VIE Pour une entité logique donnée, JPA conservera un et un seul objet géré (managed). Donc, si tous les objets sont gérés «==» et equals coïncident problème: les applications peuvent utiliser des objets détachés. 47

48 RÉCUPÉRATION PARESSEUSE D OBJET (LAZY LOADING) Si l objet University contient l ensemble des professeurs, etc... est-ce que select u from University u; chargera la totalité de la base en mémoire? NON Récupération paresseuse (LAZY LOADING): les données dans les collections ne sont récupérées que quand on en a besoin. 48

49 LAZY LOADING Exemple List<Course> l= (List<Course>) em.createquery( "select c from Course c").getresultlist(); for (Course course: l) { System.out.println(course.getProfessor.getName()); } Une requête pour les cours Une requête par professeur pas de requête pour StudentGroup même si Course a une variable d instance StudentGroup 49

50 PROBLÈMES LIÉS À LAZY LOADING Fonctionne seulement quand on est connecté (EclipseLink peut ouvrir la connexion à la demande, contrairement à hibernate, mais on perd la transactionalité) problème des N+1 select 50

51 LAZY LOADING Query q = em.createquery("select c from Course c"); for (Course c: (List<Course>) q.getresultlist()) { System.out.println(c.getName() + "followed by "); for (Student s: c.getstudents()) { System.out.println(s); } } un select SQL pour les cours ensuite, un select par étudiant 51

52 CHARGEMENT GLOUTON ( String jpql= "select distinct c from Course c left join fetch c.students"; Query q = em.createquery(jpql); for (Course c: (List<Course>) q.getresultlist()) { } System.out.println(c.getName() + "followed by "); for (Student s: c.getstudents()) { } System.out.println(s); LEFT JOIN FETCH force le chargement glouton des données un seul «gros» select au lieu de n+1 petits sans LEFT: les cours sans étudiants ne seraient pas listés sans distinct: un cours apparaîtrait autant de fois qu il a d étudiants 52

53 UNE NOTE SUR L ÉGALITÉ Exemple : classe Point avec x, y On a envie de redéfinir equals et hashcode et si x et y changent? problème avec les hashmaps et les hashsets : données deviennent fausses. les données utilisées dans equals et hashcode devraient être immuables 53

54 ENTITÉS ET VALEURS Sémantique d entité: une entité bien définie du monde est représentée par une seule instance d un objet. ses propriétés sont modifiables la méthode equals de Object convient Exemple: Student. L adresse de l étudiant est modifiable sans changer l identité de l étudiant 54

55 ENTITÉS ET VALEURS Sémantique de valeur un objet représente une valeur deux objets représentant la même valeur sont égaux on a intérêt à redéfinir equals et hashcode et à rendre l objet immuable Exemple: String, Integer la nouvelle classe LocalDate (java 8) est immuable contrairement à Date. 55

56 ET POUR NOS ENTITÉS? Ne pas redéfinir equals et hashcode: sémantique d entité, mais problème avec objets déconnectés et objets non encore connectés ok, si on fait attention à bien utiliser merge(). Utiliser l ID. Proposé par l implantation engendrée par netbeans. Fonction equals fausse pour les objets non enregistrés Utiliser une clef métier: ok, mais il faut qu elle existe (exemple: numéro de sécurité sociale) 56

57 MERGE Les objets détachés ne sont pas gérés par l entity manager merge vous permet de les ré-attacher Utilisation correcte : Student managedstudent= em.merge(detachedstudent); retourne une version gérée (managed) de l objet détaché il faut par la suite utiliser la version de managedstudent, et non l ancienne version 57

58 VERROUILLAGE OPTIMISTE Il faut éviter les modifications concurrentes et les lectures incohérentes à tout prix. Solution sûre: verrouillage pessimiste. Très coûteux Généralement, nbr(read) >>> nbr(write). Pour une entrée, modifications concurrentes très rares. but : sécuriser les opérations. Échouer explicitement en cas de modification concurrente. La modification concurrente est annulée (rollback). On doit recharger les données. 58

59 VERROU OPTIMISTE idée : versionner les éléments Quand l objet est sauvé, le numéro de version est vérifié. S il a changé, l objet a été modifié par une autre transaction OptimisticLockExceptio n Dans ce cas, prendre des mesures public class Student private Long private long version;!...! } modifié à chaque sauvegarde 59

60 MAPPING DE L HÉRITAGE Document plus d une manière de représenter l héritage dans une BD. Long docid; Author author; String title; Important: l espace des ID est le même pour toutes les classes filles. TextDoc String content; ImageDoc String filepath; int width; int height; 60

61 UTILISATION D UNE SEULE TABLE on met tout dans la même table Document Long docid; Author author; + simple, pas de duplication - champs inutilisés DOCUMENT docid BIGINT doctype CHAR #authorid BIGINT textcontent TEXT filepath VARCHAR(255) width INTEGER height INTEGER TextDoc String content; On doit coder le type effectif de l entrée 61 ImageDoc String filepath; int width;

62 @DiscriminatorColumn(name="DTYPE") abstract class Document Long docid; } Seulement dans la base, pas dans class TextDoc extends Document {! } 62

63 UNE TABLE PAR CLASSE Document + simple Long docid; Author author; - information dupliquée bien si la classe parente est très simple, avec très peu d information commune TEXTDOC docid BIGINT #authorid BIGINT textcontent TEXT IMAGEDOC docid BIGINT #authorid BIGINT filepath VARCHAR(255) width INTEGER height INTEGER TextDoc String content; ImageDoc String filepath; int width; 63

64 UNE TABLE abstract class Document Long class TextDoc extends Document {! } 64

65 TABLES JOINTES doctype optionnel for Hibernate solution la plus logique DOCUMENT docid BIGINT doctype CHAR #authorid BIGINT + pas de duplication ni d espace gaspillé - plus difficile à utiliser, surtout si on doit faire du SQL derrière bien quand classes parentes et filles sont complexes. TEXTDOC docid BIGINT textcontent TEXT 65 IMAGEDOC docid BIGINT filepath VARCHAR(255) width INTEGER height INTEGER même docid!!!

66 @DiscriminatorColumn(name="DTYPE") abstract class Document Long class TextDoc extends Document {! } certaines implémentations en ont besoin (ex. eclipselink) 66

67 @ELEMENTCOLLECTION Toutes les tables ne contiennent pas de «vraies» entités Exemple : lignes d une facture 67

68 @ELEMENTCOLLECTION = "COMMAND") public class Command implements Serializable {! /** * Map les identifiants de produits à leur = "COMMAND_LINE", joincolumns = = = "QUANTITY") private Map<Product, Integer> commandlinemap = new HashMap<Product, Integer>(); 68

69 CASCADE contrôle si les opérations comme persist, merge, etc seront appliquées récursivement aux liens. On utilise des attributs etc pour cela. valeurs possibles : CascadeType.ALL, CascadeType.ALL, CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.REMOVE 69

70 CASCADE: public class StudentGroup implements Serializable cascade= CascadeType.REMOVE) private Set<Student> students= new HashSet<Student>(); Stipule que lorsque le groupe d'étudiants est retiré, l'opération de suppression est également appliquée aux étudiants dans le groupe. les vraie cascades sont rares (composition vs. agrégation) 70

Java Persistence Api. 1. Introduction. 2. Un premier exemple. 3. L application. benoit.charroux@efrei.fr

Java Persistence Api. 1. Introduction. 2. Un premier exemple. 3. L application. benoit.charroux@efrei.fr Java Persistence Api Cet article décrit une application qui illustre comment la sauvegarde d un graphe d objets peut être réalisé en Java Standard Edition via Java Persistence Api. 1. Introduction Java

Plus en détail

TP4 : Services Web REST

TP4 : Services Web REST TP4 : Services Web REST Développement d un service REST pour la réservation d un hôtel L objectif de cet exercice est le de veloppement de services REST à pàrtir de clàsses Jàvà pour là recherche et là

Plus en détail

Cours: BD et Environnement Distribuées

Cours: BD et Environnement Distribuées UNIVERSITÉ DE BOURGOGNE UFR Sciences et Techniques Cours: BD et Environnement Distribuées TP 4 - Mapping Objet Relationnel Préparé par: MATTA Elie et al. Copyright 2010-2011, eliematta.com. All rights

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 10 Lecture de données Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Introduction à Hibernate. Fonctionnalités de base. Outil ORM. Avantages. Avantages

Introduction à Hibernate. Fonctionnalités de base. Outil ORM. Avantages. Avantages Introduction à Hibernate Hibernate est un outil ORM (Object- Relational Mapping) open source pour Java Ce cours est un rapide survol de ses possibilités Université de Nice Sophia-Antipolis Version O 0.5

Plus en détail

CRÉATION DES COMPTES UTILISATEURS

CRÉATION DES COMPTES UTILISATEURS Formation continue Projet tuteuré CRÉATION DES COMPTES UTILISATEURS MOD24 UVSQ SUJET Le contexte du projet est celui du lycée Paul Lapie relatif à l épreuve E4 de l examen du BTS SIO. Il s agit de l application

Plus en détail

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Le mapping objet relationnel Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Plan de présentation 1. Le modèle relationnel et le modèle objet 2. Le Mapping Objet

Plus en détail

Introduction. Correspondance Objet - Relationnel. Présupposé. Quelques problèmes du passage Relationnel Objet. 2 paradigmes

Introduction. Correspondance Objet - Relationnel. Présupposé. Quelques problèmes du passage Relationnel Objet. 2 paradigmes Introduction Correspondance Objet - Relationnel Université de Nice Sophia-Antipolis Version 1.0.1 15/9/07 Richard Grin Ce cours explique les problèmes de base qui se posent quand on veut faire correspondre

Plus en détail

Institut Supérieur De Gestion De Tunis 3 ème LFIG BAYOUDHI Chaouki

Institut Supérieur De Gestion De Tunis 3 ème LFIG BAYOUDHI Chaouki Exemple JSF EJB et Bean géré I. Enoncé : Cet exemple est une petite application web proposant deux pages web : L une qui affiche un formulaire afin de pouvoir ajouter un livre (AjoutLivre.xhtml), L autre

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Short-Circuit Introduction Spring JPA, JTA, DBConnectionPool. Cours Spring Data

Short-Circuit Introduction Spring JPA, JTA, DBConnectionPool. Cours Spring Data Cours Spring Data 1 Présentation Générale - Spring Data est un robuste framework de l écosystème de Spring qui se compose de nombreux modules offrant d accéder des solutions de données alternatives comme

Plus en détail

Java. Persistent API. Auteur : PEREZ Noël. Date : Octobre 2009. nperez@hinnoya.fr

Java. Persistent API. Auteur : PEREZ Noël. Date : Octobre 2009. nperez@hinnoya.fr Java Persistent API Auteur : PEREZ Noël nperez@hinnoya.fr Date : Octobre 2009 Plan Principes des Frameworks de persistence Historique JPA 1.0 JPA 2.0 Demo Questions? JUG Lyon / oct 2009 Java Persistent

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Création d une Application Web / JSF

Création d une Application Web / JSF Création d une Application Web / JSF Rédacteurs : Alexandre Baillif, Philippe Lacomme et Raksmey Phan Date : juillet 2010 Avertissement : ce document est une reprise d une partie d un document écrit par

Plus en détail

TP SLAM4 Gestion immobilière MVC

TP SLAM4 Gestion immobilière MVC TP SLAM4 Gestion immobilière MVC Table des matières A. Contexte... 1 B. La connexion à la base... 2 1) Consignes... 2 2) Création des objets associés à la BD... 2 3) Récupération d occurrences... 3 Toutes...

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

Plus en détail

Gestion des transactions

Gestion des transactions 8 Gestion des transactions Au sommaire de ce chapitre U Problèmes associés à la gestion des transactions U Choisir une implémentation de gestionnaire de transactions U Gérer les transactions par programmation

Plus en détail

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec:

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec: Cedric Dumoulin Objectifs Comprendre l architecture typique d une application web Exemple: Application permettant de lister un catalogue d articles, et de créer des articles Expérimenter avec: EJB, JPA

Plus en détail

Gestion Bibliothèque. Résumé

Gestion Bibliothèque. Résumé Gestion Bibliothèque Résumé Ces travaux seront réalisés dans le cadre du cours Web Services Miage NTDP afin de permettre aux étudiants d assimiler les concepts théoriques vus en cours. L idée est de développer

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

TP6 EJB : Création d'un EJB3 Entité

TP6 EJB : Création d'un EJB3 Entité TP6 EJB : Création d'un EJB3 Entité Objis : nous allons vous faire aimer JAVA - www.objis.com 1 Table des matières Formation EJB - TP 'Développement EJB3 entity avec Eclipse' Propriété du document...3

Plus en détail

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish TP N 4 Création d un projet Web Avec EJB JSF et Glassfish I. Les objectifs :... 1 II. L architecture de l atelier... 1 III. Rappel... 1 IV. L environnement de développement... 2 V. Création d un projet

Plus en détail

Bases de données Cours 7 : Modèle relationnel-objet

Bases de données Cours 7 : Modèle relationnel-objet -relationnel Cours 7 : Modèle relationnel-objet ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://pages-perso.esil.univmed.fr/ papini/ -relationnel Plan du cours 1 Introduction 2

Plus en détail

Enregistrer un nouvel évènement

Enregistrer un nouvel évènement Maintenant que nous avons géré les utilisateurs, voyons l'enregistrement d'un nouvel évènement créé par l'utilisateur qui sera connecté au client. Là encore, nous utiliserons une couche DAO formée d'une

Plus en détail

JPA: Java Persistence API

JPA: Java Persistence API 1 2 Objet JPA JPA: Java Persistence API @Entity public class Vin implements java.io.serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; private String nomvin;

Plus en détail

TP n o 14 : Bases de données, première partie

TP n o 14 : Bases de données, première partie TP n o 14 : Bases de données, première partie I Introduction Dans ce TP nous allons effectuer des opérations élementaires sur une base de données ne comportant qu une seule table. Lors de la prochaine

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 10 L API JPA et la

Plus en détail

Persistance en Php. Note : les problèmes d accès concurrents, de sécurité et de login sont laissés de côté.

Persistance en Php. Note : les problèmes d accès concurrents, de sécurité et de login sont laissés de côté. Persistance en Php Objectif : faire un site pour gérer des articles par catégorie. Chaque catégorie a un nom, chaque catégorie est constitué d articles (titre, auteur, texte), un article est dans une seule

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Mapping Objet/Relationnel

Mapping Objet/Relationnel Mapping Objet/Relationnel I. Mougenot (isabelle.mougenot@univ-montp2.fr) Faculté des Sciences Université Montpellier 2 2014 Mougenot (UM2) FMIN362 Cours2 2014 1 / 14 Les limites du relationnel 1 Première

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

TP JPA Association et Héritage

TP JPA Association et Héritage Objectifs TP JPA Association et Héritage Author : Cedric Dumoulin Date : 13 nov. 2012 Rev : 14 Oct. 2014 Dans ce TP vous allez faire plusieurs petits exemples afin de vous familiariser avec les associations

Plus en détail

OBJECT DB. IFT287 (Thème 8)

OBJECT DB. IFT287 (Thème 8) 1 OBJECT DB IFT287 (Thème 8) 2 ObjectDB ObjectDB est un système de gestion de base de données objet pour Java Utilise directement JPA Java Persistance API Utilise directement JDO Java Data Objects 3 ObjectDB

Plus en détail

SQL : création et mises-à-jour de schémas et de données

SQL : création et mises-à-jour de schémas et de données SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues SQL-MAJ, vues-1 / 33 Exemple Définition de la relation

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Construire un service web Java EE avec l'ide Netbeans 6.5 et le serveur Java EE Glassfish

Construire un service web Java EE avec l'ide Netbeans 6.5 et le serveur Java EE Glassfish Construire un service web Java EE avec l'ide Netbeans 6.5 et le serveur Java EE Glassfish Serge Tahé, février 009 http://tahe.developpez.com /78 Le texte qui suit fait référence aux documents suivants

Plus en détail

JPA Ec E lip c selink lip

JPA Ec E lip c selink lip JPA EclipseLink 1 Présentation JPA 10a 1.0 été introduite dans la spécification JEE 5, la spécification JEE 6 définit JPA 2.0 JPA est une abstraction de la couche JDBC, les classes et les annotations JPA

Plus en détail

Modèle relationnel Langage de requêtes (3)

Modèle relationnel Langage de requêtes (3) Modèle relationnel Langage de requêtes (3) ENT ou SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les opérations d aggrégation Besoin non seulement de récupérer

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

Plus en détail

Informatique en CPGE (2015-2016) Le langage SQL

Informatique en CPGE (2015-2016) Le langage SQL Informatique en CPGE (2015-2016) Le langage SQL S. B. Lycée des EK 30 mai 2016 Le SQL (Structured Query Language = langage de requêtes structuré) est un langage informatique de dialogue avec une base de

Plus en détail

Gestion des données avec SQLite sous Android

Gestion des données avec SQLite sous Android Gestion des données avec SQLite sous Android La base de données SQLite SQLite est une base de données Open Source embarquée dans le système Android. SQLite supporte les types suivants : NULL : valeur non

Plus en détail

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours vous permettra d acquérir les principes fondamentaux

Plus en détail

Le sujet comporte 7 pages. A,B C D C D E E A

Le sujet comporte 7 pages. A,B C D C D E E A Université Paris 7 Master 1 Informatique, Bases de données avancées. 10 janvier 2014 Durée : 2h30 Documents manuscrits, notes de cours, notes de TD/TP autorisés. Livres, ordinateurs, téléphones portables

Plus en détail

Optimisation. Bases de Données. Année 2007-08

Optimisation. Bases de Données. Année 2007-08 Optimisation Bases de Données Année 2007-08 Les index Les index sont utilisés pour accélérer l accès aux données. fonction de hachage qui permet de retrouver rapidement un ou des enregistrements les clés

Plus en détail

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule.

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule. TP Mock Pour faire ce TP il faut récupérer la "bibliothèque" mockito-all-x.x.x.jar. Vous pouvez la trouver à partir de https://code.google.com/p/mockito/downloads/list (pour mockito- 1.9.5.zip). Anciennement

Plus en détail

DQL Doctrine Query Language UP Web Framework PHP

DQL Doctrine Query Language UP Web Framework PHP DQL Doctrine Query Language UP Web Framework PHP Année universitaire 2014-2015 Repository Les Repository servent à récupérer et à manipuler les entités. Ces services utilisent un Entity Manager: 2 techniques

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

UFR de Mathématiques et Informatique

UFR de Mathématiques et Informatique UFR de Mathématiques et Informatique Licence professionnelle "Les métiers de l'internet" Réf. Regles_MCD_MPD.doc Module BD1 (Partiel et examen) Date dernière version : Avril 2002 Diffusion : apprenants

Plus en détail

Bases de Données. SQL: Définition

Bases de Données. SQL: Définition Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 SQL: Définition Structured Query Langage(SQL): - Langage g de base dans les SGBD - Langage de

Plus en détail

Booster vos développements avec Spring Boot

Booster vos développements avec Spring Boot Booster vos développements avec Spring Boot Julien Sadaoui Développeur Java @juliensadaoui juliensadaoui La plateforme spring La plateforme spring public class BookService { @PersistenceContext private

Plus en détail

Modèle relationnel Langage de requêtes (2)

Modèle relationnel Langage de requêtes (2) Modèle relationnel Langage de requêtes (2) SITE : ENT ou http://www.univ-orleans.fr/lifo/members/mirian.halfeld BD - Mírian Halfeld-Ferrari p. 1/2 Besoin d augmenter le pouvoir d expression Algèbre SPJR

Plus en détail

1/24. I On peut toujours faire du relationnel : enrichissement de SQL2. Introduction 3/24 SGBDOO

1/24. I On peut toujours faire du relationnel : enrichissement de SQL2. Introduction 3/24 SGBDOO ntroduction 1/24 2/24 Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 La norme SQL 3 aussi appelée SQL 99 Extension du modèle relationnel à l objet nécessité de structures de données plus sophistiquées

Plus en détail

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique 1er juin 2007 Durée : 3 heures. Seule la documentation des classes java.util.list et java.util.arraylist distribuée est autorisée.

Plus en détail

Introduction aux bases de données

Introduction aux bases de données Introduction aux bases de données Cours 3. : Le langage SQL Vincent Martin email : vincent.martin@univ-tln.fr page personnelle : http://lsis.univ-tln.fr/~martin/ Master 1. LLC Université du Sud Toulon

Plus en détail

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête Modification des données stockées dans une base LIF4 - Initiation aux Bases de données : SQL - 3 E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery La modification s effectue par

Plus en détail

Relation many-to-one. Implémentation de l'association. Relation bidirectionnelle

Relation many-to-one. Implémentation de l'association. Relation bidirectionnelle Ajoutons maintenant la classe User et l'association many-to-one qui la lie avec la classe Event. L'arborescence du projet est maintenant la suivante : Implémentation de l'association Relation bidirectionnelle

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Chapitre 1 Installer MySQL 5 21

Chapitre 1 Installer MySQL 5 21 Chapitre 1 Installer MySQL 5 21 1.1. Les outils nécessaires... 22 1.2. Télécharger et installer le serveur MySQL... 22 Télécharger la dernière version... 22 Lancer l installation sous Windows... 23 Lancer

Plus en détail

Petstore - EJB3 Entity

Petstore - EJB3 Entity Petstore - EJB3 Entity Le tutorial aborde les différentes étapes pour implémenter les EJB3 entity. Toutes les sources du Petstore sont développées. L'application est déployée sous JBoss 5.1.0.GA. J. HILDEBRAND

Plus en détail

Table des matières. TP JEE (2) Logic metier et Entreprise Java Beans. IUT Bordeaux 1 - Département Informatique

Table des matières. TP JEE (2) Logic metier et Entreprise Java Beans. IUT Bordeaux 1 - Département Informatique IUT Bordeaux 1 - Département Informatique Semestre 4 JEE 20112012 TP JEE (2) Logic metier et Entreprise Java Beans Les EJB (Enterprise JavaBeans) 3.0 permettent de découpler la logique de présentation

Plus en détail

Intro BD. M. Sassolas. L3Pro SCT M7. Cours 1. Introduction. relationnel. Lecture et écriture des TD/TP 2 / 29. Intro BD. M. Sassolas.

Intro BD. M. Sassolas. L3Pro SCT M7. Cours 1. Introduction. relationnel. Lecture et écriture des TD/TP 2 / 29. Intro BD. M. Sassolas. aux bases de les L3Pro SCT Bases de et programmation L ubiquité des Mathieu Sassolas L informatique est la science du calcul. IUT de Sénart Fontainebleau Département Informatique Année 2015-2016 Le calcul

Plus en détail

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers LOG660 - Bases de données de haute performance Paradigme relationnel-objet Hiver 2011 C. Desrosiers Département de génie logiciel et des TI Le modèle relationnel-objet (OR Ajoute quelques notions au modèle

Plus en détail

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

JDBC et objet-relationnel

JDBC et objet-relationnel Types de données de SQL3 JDBC et objet-relationnel Université de Nice - Sophia Antipolis Version 1.6.4 5/11/11 Richard Grin JDBC supporte les types suivants de SQL3 qui sont des ouvertures vers le relationnelobjet

Plus en détail

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL)

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL) Introduction 1/39 2/39 Introduction Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 A partir de l algèbre relationnelle s est construit un langage informatique permettant d interroger les données : SQL

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 11 Le langage HQL Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire National

Plus en détail

LES REQUÊTES EN LANGAGE S.Q.L.

LES REQUÊTES EN LANGAGE S.Q.L. LES REQUÊTES EN LANGAGE S.Q.L. Une base de données contient un nombre important d informations. Ces informations sont organisées, mais pour être effectivement exploitables, il faut pouvoir sélectionner,

Plus en détail

Compte rendu du T.P. base de données SQL

Compte rendu du T.P. base de données SQL Compte rendu du T.P. base de données SQL (R0) Liste de noms de tous les hotels, avec leur numéros de station. Vérif. : On doit obtenir 78 réponses. Solution 0 SELECT nomh, ns FROM hotels (R1) En faisant

Plus en détail

Ingénierie des modèles (b)

Ingénierie des modèles (b) Ingénierie des modèles b. Exploiter et produire Raphaël Marvie LIFL - IRCICA Université de Lille I marvie@lifl.fr http://www.lifl.fr/~marvie 1 Menu Introduction Model Driven Architecture PIM, PAM, POUM

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Bases de données sous Access

Bases de données sous Access Bases de données sous Access Plan Initiation aux bases de données Application sous Access Structure d une base de données Langages de manipulation de données Algèbre relationnelle (théorique) QBE d Access

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

Module MABD Master Informatique Spécialité IAD. Cours 3 Modèle objet-relationnel et SQL3

Module MABD Master Informatique Spécialité IAD. Cours 3 Modèle objet-relationnel et SQL3 Module MABD Master Informatique Spécialité IAD Cours 3 Modèle objet-relationnel et SQL3 1 L'objet-relationnel Relationnel (tables, attributs, domaine, clé) + Objet (collections, identifiants, héritage,

Plus en détail

E2I- 4 (option HF) CONTRÔLE JAVA 1

E2I- 4 (option HF) CONTRÔLE JAVA 1 E2I- 4 (option HF) CONTRÔLE JAVA 1 Corrigé 1. Les données de type char sont codées en java comme : un octet (code ASCII) deux octets (code ASCII) un octet (code unicode) X deux octets (code unicode) un

Plus en détail

Android API de Persistance. James Douglass Lefruit Ingénieur de Recherche, INRIA Grenoble

Android API de Persistance. James Douglass Lefruit Ingénieur de Recherche, INRIA Grenoble Android API de Persistance James Douglass Lefruit Ingénieur de Recherche, INRIA Grenoble Android Les Préférences SharedPreferences Stockage SQLite sur Android Introduction Générale à SQLite Les API SQLite

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 Table des matières

Plus en détail

«Anatomie» d une application web Servlets - JDBC

«Anatomie» d une application web Servlets - JDBC «Anatomie» d une application web Servlets - JDBC Patrick REIGNIER - Philippe GENOUDUJF Février 2005 1 L application histogramme de notes HistoServlet HistoServlet HistogramModel HistogramModel (objet (objet

Plus en détail

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des.

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des. 1/28 2/28 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 XML I XML = extensible markup language I Langage de description de documents (semi-structurés, utilisant des balises

Plus en détail

BASES DE DONNÉES : COMPLÉMENTS

BASES DE DONNÉES : COMPLÉMENTS : personne pe eleve enseigne personne pp prof num_p num_p num_classe pe.prenom = pp.prenom num_pro f = pp.num_p pe.nom pe.prenom Objectifs A la fin de la séquence d enseignement l élève doit pouvoir :

Plus en détail

Utilitaires pour modéliser des bases de données en XML

Utilitaires pour modéliser des bases de données en XML Utilitaires pour modéliser des bases de données en XML PimenTech http://www.pimentech.net 9 septembre 2010 1 Introduction Afin de gagner un peu de temps et d uniformiser les modèles de nos bases de données,

Plus en détail

Infotronique ITR2 Semaine du 16/02 au 27/02/2009 TP partie 1 Mapping Objet Relationnel Un compte rendu de ce TP est à rendre avant le 27/02/2009.

Infotronique ITR2 Semaine du 16/02 au 27/02/2009 TP partie 1 Mapping Objet Relationnel Un compte rendu de ce TP est à rendre avant le 27/02/2009. Infotronique ITR2 Semaine du 16/02 au 27/02/2009 TP partie 1 Mapping Objet Relationnel Un compte rendu de ce TP est à rendre avant le 27/02/2009. 1 Connexion client serveur JDBC Une connexion JDBC met

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Et également retour sur le TP2. Prog Web Server - 2015-2016

Et également retour sur le TP2. Prog Web Server - 2015-2016 Et également retour sur le TP2 C'est un moyen simple de passer en revue un tableau Deux syntaxes À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne à la liste

Plus en détail

Créer des documents XML

Créer des documents XML 1 Créer des documents XML La spécification XML définit comment écrire un document au format XML. XML n est pas un langage en lui-même mais, en revanche, un document XML est écrit dans un langage à balises

Plus en détail

Tutoriel Android Comment lire et écrire un fichier XML en utilisant DOM Romain Raveaux

Tutoriel Android Comment lire et écrire un fichier XML en utilisant DOM Romain Raveaux Tutoriel Android Comment lire et écrire un fichier XML en utilisant DOM Romain Raveaux Préambule... 2 Prérequis... 3 SAX vs DOM... 4 Lecture... 5 Liste de noeuds... 5 Les attributs... 5 Ecriture... 6 Création

Plus en détail

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours s'adresse aux utilisateurs d'oracle8i, Oracle9i

Plus en détail

Sujet 11 : Modélisation d actifs financiers Sujet proposé par J. Lelong & M. Echenim. [DOCUMENTATION API LOGICIEL MODAFI]

Sujet 11 : Modélisation d actifs financiers Sujet proposé par J. Lelong & M. Echenim. [DOCUMENTATION API LOGICIEL MODAFI] Sujet 11 : Modélisation d actifs financiers Sujet proposé par J. Lelong & M. Echenim. [DOCUMENTATION API LOGICIEL MODAFI] 1 P a g e Sommaire Introduction p.3 Gestion de l Univers p.3 o Ajout / Suppression

Plus en détail

Tp1 Ema EMACS Développement Web

Tp1 Ema EMACS Développement Web Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application

Plus en détail

UML : Conception Objet

UML : Conception Objet MAI NFE103 Année 2013-2014 UM : Conception Objet F.-Y. Villemin (f-yv@cnam.fr) Plan!!Modèle Objet : Passage à la conception!!instances et iens!!cas d Utilisation!!Diagramme de Séquences!!Diagramme de Collaborations!!Exceptions

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur

Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur TP 8 Initiation à Google Web Toolkit (GWT) - Communication Client-Serveur 8.1 Avant-propos Lors du premier, nous avons découvert le fonctionnement de GWT par l intermédiaire d un exemple simple : gestion

Plus en détail