Présentation sur Ajax dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l'Ecole de technologie supérieure, Montréal, Automne 2009
Présentation sur Ajax dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l'Ecole de technologie supérieure, Montréal, Automne 2009
Présentation Hibernate issue de la formation J2EE réalisée par le club CFEM ( club futur entrepreneur en multimédia) au sein de l'institut supérieur d'informatique et multimédia de sfax (ISIMS)
Support Complet sur la technologie EJB 3.1. Ce cours Traite l'architecture JEE. Les différents types EJB (Session, Entity, MDB). Des exemple complets sont aussi présentés.
Qu'est ce que Java et JEE ?
Comment se fait l'évolution de Java ?
Les architectures SOA.
Les technologies (JSR).
Les frameworks.
Le middleware.
Les outils.
El documento presenta instrucciones sobre cómo insertar imágenes en HTML utilizando las etiquetas <img>, y cómo modificar atributos como el borde, tamaño y texto alternativo de las imágenes. Luego muestra un ejemplo de código HTML que incluye varias imágenes de Adidas con diferentes atributos.
This document discusses reflective teaching and strategies to promote reflection. Reflective teaching means thinking critically about one's teaching practices to improve professionally. It has characteristics like wholehearted commitment, being open-minded, and taking responsibility. Strategies to promote reflection include writing journals, using feedback instruments, videotaping lessons, and role plays. Reflective teaching helps improve problem-solving skills, allows observing models of reflection, and supports continuous improvement through action research.
Seminario di aggiornamento professionale in tema di pari opportunità. Promosso da Città metropolitana di Venezia | ufficio pari opportunità | ufficio consigliera di parità
Este documento presenta el prólogo de un libro titulado "Matemática Recreativa" de Yakov I. Perelman. El prólogo introduce el libro como una colección de más de 100 acertijos y problemas matemáticos diseñados para ser divertidos y entretenidos de resolver, aun para aquellos con conocimientos aritméticos básicos. El prólogo también describe la estructura del libro, el cual presenta los acertijos en la primera parte y las soluciones en la segunda parte.
El documento describe el infarto vestibular, incluyendo la anatomía del nervio vestibular, sus vías aferentes al cerebelo y áreas cerebrales, posibles causas vasculares como infartos en el laberinto, nervio o núcleos, y cómo se manifiestan clínicamente con vértigo y pérdida de la audición. El test de calor es útil para identificar el lado lesionado. El tratamiento se enfoca en la causa vascular subyacente.
1) El documento habla sobre la elaboración de reactivos para exámenes que midan el aprendizaje escolar. 2) Define principios como definir claramente los aprendizajes a medir, usar instrumentos adecuados y establecer normas explícitas. 3) Describe tipos de exámenes, reactivos y pasos para la planeación de exámenes.
Présentation Hibernate issue de la formation J2EE réalisée par le club CFEM ( club futur entrepreneur en multimédia) au sein de l'institut supérieur d'informatique et multimédia de sfax (ISIMS)
Support Complet sur la technologie EJB 3.1. Ce cours Traite l'architecture JEE. Les différents types EJB (Session, Entity, MDB). Des exemple complets sont aussi présentés.
Qu'est ce que Java et JEE ?
Comment se fait l'évolution de Java ?
Les architectures SOA.
Les technologies (JSR).
Les frameworks.
Le middleware.
Les outils.
El documento presenta instrucciones sobre cómo insertar imágenes en HTML utilizando las etiquetas <img>, y cómo modificar atributos como el borde, tamaño y texto alternativo de las imágenes. Luego muestra un ejemplo de código HTML que incluye varias imágenes de Adidas con diferentes atributos.
This document discusses reflective teaching and strategies to promote reflection. Reflective teaching means thinking critically about one's teaching practices to improve professionally. It has characteristics like wholehearted commitment, being open-minded, and taking responsibility. Strategies to promote reflection include writing journals, using feedback instruments, videotaping lessons, and role plays. Reflective teaching helps improve problem-solving skills, allows observing models of reflection, and supports continuous improvement through action research.
Seminario di aggiornamento professionale in tema di pari opportunità. Promosso da Città metropolitana di Venezia | ufficio pari opportunità | ufficio consigliera di parità
Este documento presenta el prólogo de un libro titulado "Matemática Recreativa" de Yakov I. Perelman. El prólogo introduce el libro como una colección de más de 100 acertijos y problemas matemáticos diseñados para ser divertidos y entretenidos de resolver, aun para aquellos con conocimientos aritméticos básicos. El prólogo también describe la estructura del libro, el cual presenta los acertijos en la primera parte y las soluciones en la segunda parte.
El documento describe el infarto vestibular, incluyendo la anatomía del nervio vestibular, sus vías aferentes al cerebelo y áreas cerebrales, posibles causas vasculares como infartos en el laberinto, nervio o núcleos, y cómo se manifiestan clínicamente con vértigo y pérdida de la audición. El test de calor es útil para identificar el lado lesionado. El tratamiento se enfoca en la causa vascular subyacente.
1) El documento habla sobre la elaboración de reactivos para exámenes que midan el aprendizaje escolar. 2) Define principios como definir claramente los aprendizajes a medir, usar instrumentos adecuados y establecer normas explícitas. 3) Describe tipos de exámenes, reactivos y pasos para la planeación de exámenes.
Este documento presenta los procedimientos para tomar una decisión de manera organizada. Estos incluyen definir el objetivo, considerar los puntos de vista de la familia, analizar las variables, generar alternativas, identificar las variables más importantes y escoger las alternativas más convenientes. Luego, ofrece un ejemplo de cómo aplicar estos pasos para ayudar a un joven a prepararse para un examen de ingreso a la universidad evaluando su especialidad, las variables a considerar y las alternativas disponibles.
Este documento establece los criterios y procedimientos para la atención médica de la mujer durante el embarazo, parto y puerperio, así como del recién nacido, con el objetivo de promover una atención de calidad y oportuna basada en la constitución, leyes y tratados internacionales. Describe los aspectos clave de la atención prenatal, del parto, puerperio y del recién nacido de acuerdo a la normatividad mexicana.
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
Le web, nouvelle définition : les possibilités étendues de HTML5 marquent un tournant dans le développement de sites et d'applications web riches. Lors de cette soirée, nous ferons une revue des possibilités offertes par HTML5, CSS3 et Javascript, des applications mobiles aux jeux vidéo en passant par la diffusion de médias audio et vidéo.
Présenté par Benjamin Anseaume de Sushee.fr et Erwan Hesry
Angular n'est pas un simple framework mvc, il va plus loin et change fondamentalement notre manière de concevoir des applications web.
De l'avis de ses auteurs Angular est la plateforme qu'aurait été le couple html et JavaScript si ils avaient été créés aujourd'hui. SignalR quand a lui change aussi radicalement la manière de voir l'interaction avec les utilisateurs grace a sa communication bi-directionnelle simplifiée.
Il est intéressant de réunir les deux pour profiter du meilleur des deux mondes, de voir comment des bindings et des évènements se propagent de bout en bout et ainsi avoir un aperçu des applications de demain.
Dans cette session, vous découvrirez les nouveaux standards supportés par Internet Explorer 10. Coté CSS3, on verra ainsi des choses comme grid layout, animations ou transitions. Coté nouvelles APIs, nous passerons un peu de temps sur la gestion du drag-n-drop, IndexedDB, la gestion de l’Application Cache ou bien encore la gestion du tactile. Pour découvrir tout cela, nous verrons à chaque fois de petits exemples d’illustration ainsi que des sites plus « complexes » les mettant en œuvre.
Les dernières avancées html5 & css3 en action !davrous
Dans cette session, vous découvrirez les nouveaux standards supportés par Internet Explorer 10. Coté CSS3, on verra ainsi des choses comme grid layout, animations ou transitions. Coté nouvelles APIs, nous passerons un peu de temps sur la gestion du drag-n-drop, IndexedDB, la gestion de l'Application Cache ou bien encore la gestion du tactile. Pour découvrir tout cela, nous verrons à chaque fois de petits exemples d'illustration ainsi que des sites plus « complexes » les mettant en oeuvre.
Présentation jouée pendant les MS Techdays 2013: http://www.microsoft.com/france/mstechdays/programmes/2013/fiche-session.aspx?ID=4a174b26-32b7-4d4c-8523-ad3a3228ef53
Retrouvez tous les exemples de code sur mon blog ici: http://blogs.msdn.com/b/davrous/archive/2012/11/03/demos-links-amp-articles-associated-to-htm5-amp-css3-latest-features-in-action-build-3-114.aspx
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
Tallk présenté à Devoxx avec Bachir Ait M'Barek : https://www.linkedin.com/in/baitmbarek
C’est la révolution dans la BI, les zones tampon FTP laissent la place aux systèmes de fichier distribués, le SQL s'exécute sur Hadoop, les dashboard en HTML5 remplacent les clients lourds, mais ne peut-on pas rationaliser un peu l’approche ?
Comment s’y prendre pour transformer une chaine BI en datalake ?
Cette université fera le tour de l’ingénierie des données en mode BigData. Au travers d’une présentation détaillée des concepts, de retour d’expériences et d’un cas pratique, nous allons découvrir :
les technologies et l’architecture, avec Spark, Kafka, Elasticsearch, Impala et Mesos,
et les méthodes associées : cycle de développement avec Hadoop, tests unitaires, jointures, gestion de la qualité de donnée, recette en mode Big Data et gestion des métadonnées.
La présentation a pour but d'expliquer comment les concepts de Clean Architecture et de l'architecture en oignon ont été utilisés dans un projet phare de iA Groupe Financier pour permettre de travailler en mode agile en réutilisant du code patrimonial.
Karol Deland
1. ´
Developpement Web - Object Relational Mapping and Hibernate
´
Developpement Web - Object Relational
Mapping and Hibernate
Jean-Michel Richer
jean-michel.richer@univ-angers.fr
http://www.info.univ-angers.fr/pub/richer
M1/M2 Informatique 2010-2011
1 / 58
2. ´
Developpement Web - Object Relational Mapping and Hibernate
Plan
Plan
1
Introduction
2
JOBYME
3
Hibernate
4
Bibliographie
2 / 58
3. ´
Developpement Web - Object Relational Mapping and Hibernate
Plan
ORM et Hibernate
Objectifs
• se familiariser avec l’ORM
• le mettre en oeuvre sans framework (jobyme)
• le mettre en oeuvre en utilisant Hibernate
3 / 58
4. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
Introduction
Introduction
4 / 58
5. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
Que’est-ce que l’ORM ?
ORM
´
L’ORM ou Object Relational Mapping a pour but d’etablir la
correspondance entre
• une table de la base de donnees
´
• et une classe du modele objet
`
5 / 58
6. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
Pourquoi l’ORM ?
´
´
Necessite de l’ORM
• le modele logique des donnees est different du modele de
`
´
´
`
classe
• reutilisabilite du code pour effectuer les operation de base :
´
´
´
• DAO
• CRUD
6 / 58
7. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
Rappel CRUD
CRUD
`
ensemble des fonctions a implanter dans un BD relationnelle :
´
Operation
Create
Read (Retrieve)
Update
Delete (Destroy)
SQL
INSERT
SELECT
UPDATE
DELETE
7 / 58
8. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
Pourquoi l’ORM ?
Comparaison Objet et Relationnel
´
La representation sous forme Relationnelle n’entre pas en
´
correspondance avec la representation Objet
• Objet : notions d’heritage et de polymorphisme
´
• Objet : pas d’identifiant (pointeur)
• Objet : les relations n:m sont modelisees par des
´ ´
containers
8 / 58
9. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
ORM et Java
ORM et Java
´
´ `
Inconvenients lies a Java
• choix important de solutions et outils / API
• evolution des API suivant les versions :
´
• difficulte d’apprentissage
´
• difficulte de configuration
´
9 / 58
10. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
ORM et Java
ORM, Java et JDBC
´
la JDBC (Java DataBase Connectivity) a apporte une
`
´
standardisation au niveau de l’acces des bases de donnees,
mais :
• il faut ecrire le code pour realiser le CRUD
´
´
• et realiser le mapping entre tables et objets
´
10 / 58
11. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
ORM et Java
Solutions existantes
• API standard : JDO (Java Data Objects + POJO)
• API : Hibernate + POJO
• API complexes : EJB Entity
Frameworks de persistance : http://fr.wikipedia.org
(Hibernate, Cayenne, EJB3, ...
11 / 58
12. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
ORM et Java
Comparaison JDO et Hibernate
• JDO est un standard et Hibernate une solution Open
Source
• JDO peut traiter la persistance des BD Objets ou XML
(possible depuis Hibernate 3)
• JDO propose un langage de requete JDOQL / HSQL
ˆ
• JDO modifie les POJO alors que ce n’est pas le cas
d’Hibernate
12 / 58
13. ´
Developpement Web - Object Relational Mapping and Hibernate
Introduction
ORM et Java
JDO
• www.oracle.com
• http://db.apache.org/jdo/index.html
Hibernate
• http://www.hibernate.org/
13 / 58
14. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
JOBYME
JOBYME
14 / 58
15. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
JOBYME
´
Definition JOBYME
• Java Orm BY ME
• tentative de generation automatique de l’ORM (Code Java
´ ´
+ CRUD)
• lecture de la BD (MySQL) et generation du code
´ ´
correspondant
15 / 58
16. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Etude de cas
Etude de cas
´
´
On desire modeliser la relation : Client, Commande, Produit
(Customer, Command, Product).
16 / 58
17. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Conventions de nommage
´
Conventions de nommage des entites
• tout en minuscule, separation par caractere souligne ( )
´
`
´
• table : meme nom que l’entite (customer)
ˆ
´
• attributs : prefixes par les 2 premiers caracteres de la
´ ´
`
`
´
table et caractere souligne (cu )
• toujours un identifiant (cu id)
• minimiser la longueur des champs
• faire en sorte que leurs noms soient explicites
17 / 58
18. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Cas de la table commande
Cas de la table commande
champ
co id
co date
co total price
co cu id
ˆ
role
identifiant
´
date creation
prix total
identifiant client
type
integer
date
float
integer
index
PK
NX
NX
18 / 58
19. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Conventions de nommage
Conventions de nommage des relations n/m
• par ordre alphabetique du nom des entites / tables
´
´
• nom : 4 premieres lettres de la premiere table, 4 premieres
`
`
`
lettres
• prefixe : premieres lettres des entites
´
`
´
19 / 58
20. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Cas de la relation commande / produit
Relation commande / produit : commprod
champ
cp id
cp co id
co pr id
cp qty
ˆ
role
identifiant
identifiant commande
identifiant produit
´
quantite
type
integer
integer
integer
integer
index
PK
NX
NX
20 / 58
21. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
JOBYME
´
Installation de la base de donnees
´
Mettre en place la base de donnees commands.sql sous
MySQL :
• nom de la base : commands
• identifiant de connexion : commuser
• mot de passe : commpass
21 / 58
22. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Mapping Objet / Relationnel
Mise en correspondance objet / tuple
´
´
realisee au travers d’un fichier de description des tables
´
´ `
´
nomme mapping.xml place a la racine du projet. On decrit le
´
nom de la table et le nom de la classe associee :
• table : nom de la table
• class : nom de la classe
• prefix : prefixe du nom de table
´
22 / 58
23. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Mapping Objet / Relationnel
Mise en correspondance relation / attribut
´
on decrit ensuite les relations :
• type : type de relation (one-to-one, one-to-many)
• attribute : nom de l’attribut
• class : nom de la classe associee
´
• crud : liste des operations a effectuer
´
`
(create,retrieve*,update,delete)
(*) en cascade
23 / 58
27. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
`
´ ´ ´
Modele objet genere
La classe Command
1 public class Command extends PersistentObject
2
implements PersistentInterface {
3
protected int id;
4
5
protected String date;
6
protected int cuId;
7
protected float totalPrice;
8
protected int nbCmdlines;
9
// relational fields
10
protected Customer customer;
11
protected List<Commprod> commprods;
12 }
27 / 58
28. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
`
´ ´ ´
Modele objet genere
La classe Customer
1 public class Customer extends PersistentObject
2
implements PersistentInterface {
3
protected int id;
4
5
protected String firstName;
6
protected String lastName;
7
protected String email;
8
protected String password;
9
protected int rights;
10
// relational fields
11
protected List<Command> commands;
12 }
28 / 58
29. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Persistance
Mise en place de la persistance
29 / 58
30. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Persistance
Mise en place de la persistance
30 / 58
31. ´
Developpement Web - Object Relational Mapping and Hibernate
JOBYME
Utilisation de JOBYME
Utiliser JOBYME
´
dans le repertoire du projet lancer : ant
• compile le generateur
´ ´
• genere les classes a partir du fichier de mapping
´ ´
`
• lance un test sommaire
31 / 58
32. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Hibernate
Hibernate
32 / 58
33. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Hibernate
Hibernate
• framework ORM pour Java (BD Relationnelles et Objet)
• requetes pour CRUD (HQL Hibernate Query Language)
ˆ
• utilisation des POJOs (Plain Old Java Objects)
• configuration au travers de fichiers XML ou d’annotations
• tres fortement configurable
`
• tres difficile a maˆtriser !
`
`
ı
33 / 58
34. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Historique
Hibernate
• 2001 par Gavin King, alternative a EJB2
`
• 2003 version 2 qui devient un standard incontournable
• integration JBOSS (RedHat)
´
• 2010 version 3 : annotations
34 / 58
35. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
Utilisation des mappings
• par convention l’extension est .hbm.xml
• on definit un fichier par classe / table
´
• placer le fichier de mapping dans le meme repertoire que
ˆ
´
le fichier de classe
35 / 58
36. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
fichier Mapping NomClasse.hbm.xml
• permet de faire le lien entre les champs de la table et ceux
de la classe
• doit etre declare dans le repertoire de la classe
ˆ
´
´
´
example Product
´
´
Product.hbm.xml declare dans com.mysite.model
36 / 58
39. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
Structure du Mapping
• PackageName : nom du package ou se trouve la classe
• ClassName : nom de la classe Java
• tableName : nom de la table de la base de donnees
´
• autres parametres a definir selon la base de donnees et
`
` ´
´
l’environnement
39 / 58
40. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
´
Definition des champs de la table
• id : permet de definir l’identifiant de la table
´
• property : champ simple
• composite-id : cle composee
´
´
• timestamp : champ de type date/heure
40 / 58
42. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
´
Definition d’un identifiant
• name : nom du champ de la classe
• type : integer, long, float, string, character, timestamp,
binary, ...
• column : nom du champ dans la table
• generator : methode de generation de l’identifiant
´
´ ´
42 / 58
43. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
´
´ ´
Methode de generation d’un identifiant
• assigned : l’utilisateur est responsable de la generation
´ ´
• native : la base de donnees est responsable de la
´
´ ´
generation
43 / 58
45. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Mapping Hibernate
´
´ ´
Definition d’une propriete
• name, type, column
• update, insert : indique que le champ doit etre ajoute lors
ˆ
´
´
`
d’une modification ou insertion (defaut a vrai)
• formula : expression SQL qui permet de definir le champ
´
• lazy : acces aux objets associes
`
´
45 / 58
46. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
´
Strategies de chargement
Fetching
• concerne le chargement des objets lies par des relations
´
• probleme complexe pour assurer l’efficacite
`
´
Exemple : chargement d’un client
Faut-il charger toutes les commandes lors du chargement du
client ?
46 / 58
47. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
´
Strategies de chargement
Fetching strategies
´
´
Hibernate definit 4 strategies de chargement
• Immediate
• Lazy : ne charge pas tout
• Eager : on specifie quels objets doivent etre charges
´
ˆ
´
• Batch
47 / 58
48. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Utiliser Hibernate
Utilisation de Hibernate
• definir un fichier de configuration
´
• demarrer Hibernate requiert la creation d’une
´
´
SessionFactory
48 / 58
49. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Fichier de configuration
Fichier de configuration hibernate.cfg.xml
• definit les parametres d’acces a la base de donnees
´
`
` `
´
• definit ou trouver les fichiers de mapping (ressource)
´
`
• doit etre place dans le repertoire src du projet
ˆ
´
´
49 / 58
51. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
SessionFactory
classe HibernateUtil
• obtenir une instance de SessionFactory
• realise l’initialisation de la connexion
´
51 / 58
52. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
HibernateUtil
HibernateUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import static java.lang.System.err;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory()'
;
} catch (Exception ex) {
// Make sure you log the exception, as it might be swallowed
err.println("Initial SessionFactory creation failed." + ex.getMessage('
));
throw new ExceptionInInitializerError(ex.getMessage());
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
52 / 58
53. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Librairies .jar
Librairies Hibernate
´
Mettre dans le repertoire WEB-INF/lib ou lib :
• l’ensemble des fichiers de Hibernate lib/required
• ajouter egalement slf4j-simple
´
http://www.slf4j.org/
53 / 58
54. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
HibernateUtil
Application
´
Mettre en place la configuration JAVA pour realiser un test avec
Hibernate
54 / 58
55. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Hibernate et annotations
Annotations
`
´
Hibernate integre un mecanisme d’annotation qui permet de
remplacer les fichiers de mapping par des commentaires dans
le code. L’objectif est de
• ne pas separer le code Java du fichier de mapping
´
• de maniere a configurer Hibernate automatiquement
` `
55 / 58
56. ´
Developpement Web - Object Relational Mapping and Hibernate
Hibernate
Exemple d’annotations
Annotations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import org.hibernate.annotations.Index;
@Entity
@Table(name="ARTIST")
@NamedQueries({
@NamesQuery(name="com.oreilly.hh.artistByName",
query="from Artist as artist where upper(artist.name)=upper(:name)")
})
public class Artist {
@Id
@Column(name="ARTIST ID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column(name="NAME",nullable=false,unique=true)
@Index(name="ARTIST NAME",columnNames={"NAME"})
private String name;
@ManyToMany
@JoinTable(name="TRACK ARTISTS",
joinColumns={@JoinColumn(name="TRACK ID")},
inverseJoinColumns={@JoinColumn(name="ARTIST ID")})
private Set<Track> tracks;
}
56 / 58
57. ´
Developpement Web - Object Relational Mapping and Hibernate
Bibliographie
Bibliographie
Bibliographie
57 / 58
58. ´
Developpement Web - Object Relational Mapping and Hibernate
Bibliographie
Bibliographie, sitographie
• Hibernate Quickly, Patrick Peak, Nick Heudecker,
Manning, 2006
• Hibernate in Action, Christian Bauer, Gavin King,
Manning, 2005
• Harnessing Hibernate, James Elliot, Tim O’Brien, Ryan
Fowler, O’Reilly, 2008
• www.hibernate.org
58 / 58