Académique Documents
Professionnel Documents
Culture Documents
Problématique MINI-PROJET
Outil ORM
Conception & réalisation d’une
Modules hibernate application de gestion des oeuvres.
Mini-projet
EXTENSIBLE MARKUP
LANGUAGE
AMELIORATION DE PROJET
Introduction Devoir a rendre
Les avantages du XML
Structure d’un document XML
Les règles de syntaxe
Validation XML
Programmation JDOM et
XML NOTRE PLAN
HIBERNATE
Problématique MINI-PROJET
Outil ORM
Conception & réalisation d’une
Modules hibernate application de gestion des oeuvres.
Mini-projet
EXTENSIBLE MARKUP
LANGUAGE
AMELIORATION DE PROJET
Introduction Devoir a rendre
Les avantages du XML
Structure d’un document XML
Les règles de syntaxe
Validation XML
Programmation JDOM et
XML NOTRE PLAN
HIBERNATE
Problématique MINI-PROJET
Outil ORM
Conception & réalisation d’une
Modules hibernate application de gestion des oeuvres.
Mini-projet
EXTENSIBLE MARKUP
LANGUAGE
AMELIORATION DE PROJET
Introduction
Devoir a rendre
Les avantages du XML
Structure d’un document XML
Les règles de syntaxe
Validation XML
Programmation JDOM et
XML NOTRE PLAN
HIBERNATE
Problématique MINI-PROJET
Outil ORM
Conception & réalisation d’une
Modules hibernate application de gestion des oeuvres.
Mini-projet
EXTENSIBLE MARKUP
LANGUAGE
AMELIORATION DE PROJET
Introduction
Devoir a rendre
Les avantages du XML
Structure d’un document XML
Les règles de syntaxe
Validation XML
Programmation JDOM et
XML NOTRE PLAN
PARTIE 1 : XML
STRUCTURE D’UN VALIDATION D’UN PROGRAMMATION
RÈGLES DE SYNTAXE
INTRODUCTION DOCUMENT XML DOCUMENT XML JDOM ET XML
• Un langage informatique de
balisage dérivé de langage SGML
1
LES AVANTAGES
STRUCTURE D’UN VALIDATION D’UN PROGRAMMATION
RÈGLES DE SYNTAXE
INTRODUCTION DOCUMENT XML DOCUMENT XML JDOM ET XML
L
Lisibilité Intégrabilité
I
Un document XML est Un document XML est
facilement lisible par utilisable par toutes les
un humain. applications pourvues
d'un parseur.
E D
Extensibilité Disponibilité
l’ensemble des balises XML est un langage libre
admises n’est pas figé ce (nous pouvons l’utiliser
qui permet aux éditeurs sans pouvoir acheter
des documents de créer une licence).
leurs propre balises.
PROLOGUE
COMMENTAIRE
ATTRIBUT
BALISE
D’OUVERTURE
ÉLÉMENT RACINE
CONTENU DE
ÉLÉMENT
BALISE DE
FERMETURE
LPMI
Place Your
Headline
ETUDIANT @DELEGUE
This is a sample text.
Insert your desired text
REPRESENTATION GRAPHIQUE DE This is a sample
here.
L’ARBRE XML text. Insert your desired
text here.
Incorrect Correct
Incorrect Correct
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
Incorrect Correct
Incorrect Correct
4
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION DOCUMENT XML
DOCUMENT XML SYNTAXE JDOM ET XML
4
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION DOCUMENT XML
DOCUMENT XML SYNTAXE JDOM ET XML
Est langage dérivée du Est langage dérivée du Est langage qui combine les Est un norme ISO ayant un
Langage SGML Langage XML avantages des DTD et des XML syntaxe XML
schéma
4
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
JDOM ET XML 2
INTRODUCTION DOCUMENT XML
DOCUMENT XML SYNTAXE
1 3
2 4
Valide
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
JDOM ET XML 2
INTRODUCTION DOCUMENT XML
DOCUMENT XML SYNTAXE
22
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
XML parseur
(DOM/JDOM) Application client
Document XML
SAX DOM
API utilisant une approche hiérarchique pour API basés sur un mode événementiel permettent
construire une structure contenant des objets de réagir à des événements comme le début d'un
représentant les éléments du document, et dont élément ou la fin d'un élément
les méthodes permettent d'accéder Aux
propriétés.
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
JDOM est une API open source Java dont le but est Exportation d'un document dans un fichier,
de représenter et manipuler un document XML de un flux SAX ou un arbre DOM
manière intuitive pour un développeur Java sans
requérir une connaissance pointue de XML.
26
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
org.jdom SAXBuilder
Attribute DOMBuilder
CDATA ResultSetBuilder
Comment
DocType
Document
org.jdom.input
Element
EntityRef
Namespace org.jdom.output XMLOutputter
SAXOutputter
ProcessingInstruction
DOMOutputter
Text
org.jdom.adapters JTreeOutputter
JDOMSource
org.jdom.transform JDOMResult
LA CLASSE DOCUMENT
28
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
La classe Document
Exemple 1:
30
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION
DOCUMENT XML SYNTAXE DOCUMENT XML JDOM ET XML
La classe Attribute
Exemple 2:
import org.jdom.Attribute;
racine.setAttribute("attribut1", "Valeur2")
racine.setAttribute("attribut2", "Valeur2") x
<personnes>
personnes
<etudiant classe ="LPMI">
<nom> Mohammed </nom>
</etudiant>
etudiant
</personnes>
nom
@classe
STRUCTURE D’UN LES RÈGLES DE VALIDATION D’UN PROGRAMMATION
INTRODUCTION JDOM ET XML
DOCUMENT XML SYNTAXE DOCUMENT XML
public
public class
class {{
private
private id;
id;
private
private firstname;
firstname;
JDBC
private
private lastname;
lastname;
}} DATABASE
public
public class
class {{
private
private id;
id;
private
private firstname;
firstname;
JDBC
private
private lastname;
lastname;
}} DATABASE
ORM
Framework
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
Avec Hibernate
Mapping objet-relationnel
SGBD
X
Code
Requêtes SQL
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET 2
ORM
Framework
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
ORM
Gain de temps au niveau du
développement d’une application. L’optimisation des outils proposés.
Fast Performance
DÉBUTER AVEC HIBERNATE
44
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
hibernate.cfg.xm
hibernate.cfg.xm
<?xml version="1.0" encoding="UTF-8"?> ll
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN“
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
Driver Class
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver
<property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbname
Username
</property>
Password <property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"> </property>
SQL Dialect
Supprimer et recréer le schéma de <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect
la base de données au démarrage </property>
<property name="hbm2ddl.auto"> create </property>
Afficher tous les SQL requêtes
exécutés sur ‘stdout’
<property name="show_sql"> true </property>
</session-factory>
</hibernate-configuration>
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
1 2
Main
Main
import org.hibernate.Session;
ServiceRegistry serviceRegistry = new
import org.hibernate.SessionFactory;
Import StandardServiceRegistryBuilder().applySettings(configuratio
org.hibernate.boot.registry.StandardServiceRegistryBuilder; n.getProperties()).build();
import org.hibernate.cfg.Configuration;
SessionFactory sessionFactory =
import org.hibernate.service.ServiceRegistry;
configuration.buildSessionFactory(serviceRegistry);
public class App Session session = sessionFactory.openSession();
{
public static void main( String[] args )
session.beginTransaction();
{
Student S1 = new Student("Othmane","Zougari"); session.save(S1);
session.getTransaction().commit();
Configuration configuration = new Configuration();
}}}
configuration.configure("hibernate.cfg.xml");
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
1 2
Student.java
Student.java
@Table(name="student_lpmi") public void setFirstName(String firstName) {
@Entity this.firstName = firstName;
public class Student { }
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY )
private int id; public String getLastName() {
@Column(name="prenom") return lastName;
private String firstName; }
@Column(name="Nom")
private String lastName; public void setLastName(String lastName) {
this.lastName = lastName;
public Student(String firstName, String lastName) { }
this.firstName = firstName;
this.lastName = lastName; @Override
} public String toString() {
Annotations Rôle
Hibernate considère la classe avec l'annotation
@Entity comme éligible pour être conservée
@Entity dans la base de données.
Si nous voulons un nom de table différent du
nom de la classe, nous pouvons spécifier le
@Table(name="") nom en utilisant l'annotation @Table.
L'annotation @Id est utilisée pour déclarer une
@Id colonne comme clé primaire.
@Entity
Student.java
Student.java
public class Student {
@Id
import org.hibernate.Session; Main
Main
import org.hibernate.SessionFactory;
@GeneratedValue(strategy = GenerationType.IDENTITY )
private int id; Import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
@Column(name=“nom") import org.hibernate.cfg.Configuration;
private String firstName; import org.hibernate.service.ServiceRegistry;
@Column(name="prenom")
private String lastName; public class App
{
public Student(String firstName, String lastName) { public static void main( String[] args )
this.firstName = firstName; {
this.lastName = lastName; Student S1 = new Student("Othmane","Zougari");
} Student S2=new Student("khezami","mohammed");
public String getFirstName() { Student S3=new Student("lahssairi","mohammed");
return firstName; Configuration configuration = new Configuration();
}
configuration.configure("hibernate.cfg.xml").addAnnotatedClass(Student.class);
50
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
RÉCUPÉRATION DES DONNÉES
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
1 2
import org.hibernate.Session;
Get()
Get() try {
import org.hibernate.SessionFactory; session.beginTransaction();
import
org.hibernate.boot.registry.StandardServiceRegistryBuilder; Student std1 = session.get(Student.class,3);
import org.hibernate.cfg.Configuration; System.out.println(std1);
import org.hibernate.service.ServiceRegistry;
import com.lahssairi.TestProject.Student; /*
Student std1 = session.get(Student.class,4);
public class App System.out.println(std1);
{ */
public static void main( String[] args ) session.getTransaction().commit();
{
}
Configuration configuration = new Configuration();
catch (Exception e) {
configuration.configure("hibernate.cfg.xml").addAnnotatedClass(St e.printStackTrace();
udent.class); session.getTransaction().rollback();
ServiceRegistry serviceRegistry = new }
StandardServiceRegistryBuilder().applySettings(configuration.getP finally {
roperties()).build(); session.close();
SessionFactory sessionFactory = }
configuration.buildSessionFactory(serviceRegistry); }
Session session = sessionFactory.openSession(); }
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
1 2
import org.hibernate.Session;
Load()
Load() try {
session.beginTransaction();
import org.hibernate.SessionFactory;
import Student std1 = session.load(Student.class,3);
org.hibernate.boot.registry.StandardServiceRegistryBuilder; //System.out.println(std1);
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; /*
import com.lahssairi.TestProject.Student; Student std1 = session.load(Student.class,4);
public class App System.out.println(std1);
{ */
public static void main( String[] args )
{ session.getTransaction().commit();
}
Configuration configuration = new Configuration();
catch (Exception e) {
configuration.configure("hibernate.cfg.xml").addAnnotatedClass(St e.printStackTrace();
udent.class); session.getTransaction().rollback();
ServiceRegistry serviceRegistry = new }
StandardServiceRegistryBuilder().applySettings(configuration.getP finally {
roperties()).build(); session.close();
SessionFactory sessionFactory = }
configuration.buildSessionFactory(serviceRegistry); }
Session session = sessionFactory.openSession(); }
MODIFICATION DES DONNÉES
OUTIL ORM LES RÈGLES DE PROGRAMMATION
PROBLEMATIQUE
INTRODUCTION LES AVANTAGES MINI-PROJET
MODULES HIBERNATE
SYNTAXE JDOM ET XML 2
1 2
import org.hibernate.Session;
Update
Update try {
session.beginTransaction();
import org.hibernate.SessionFactory;
import Student std1 = session.get(Student.class,3);
org.hibernate.boot.registry.StandardServiceRegistryBuilder; System.out.println(std1);
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; std1.setFirstName("Yassine");
import com.lahssairi.TestProject.Student; std1.setLastName("Ouahid");
public class App
{ System.out.println(std1);
public static void main( String[] args )
{ session.getTransaction().commit();
}
Configuration configuration = new Configuration();
catch (Exception e) {
configuration.configure("hibernate.cfg.xml").addAnnotatedClass(St e.printStackTrace();
udent.class); session.getTransaction().rollback();
ServiceRegistry serviceRegistry = new }
StandardServiceRegistryBuilder().applySettings(configuration.getP finally {
roperties()).build(); session.close();
SessionFactory sessionFactory = }
configuration.buildSessionFactory(serviceRegistry); }
Session session = sessionFactory.openSession(); }
SUPPRESSION DES DONNÉES
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
1 2
import org.hibernate.Session;
Delete
Delete try {
session.beginTransaction();
import org.hibernate.SessionFactory;
import Student std1 = session.get(Student.class,3);
org.hibernate.boot.registry.StandardServiceRegistryBuilder; session.delete(std1);
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; System.out.println(std1);
import com.lahssairi.TestProject.Student;
public class App Student std2 = session.get(Student.class,3);
{ System.out.println(std2);
public static void main( String[] args )
{ session.getTransaction().commit();
}
Configuration configuration = new Configuration();
catch (Exception e) {
configuration.configure("hibernate.cfg.xml").addAnnotatedClass(St e.printStackTrace();
udent.class); }
ServiceRegistry serviceRegistry = new session.getTransaction().rollback();
StandardServiceRegistryBuilder().applySettings(configuration.getP finally {
roperties()).build(); session.close();
SessionFactory sessionFactory = }
configuration.buildSessionFactory(serviceRegistry); }
Session session = sessionFactory.openSession(); }
CYCLE DE VIE
PROBLEMATIQUE OUTIL ORM MODULES HIBERNATE MINI-PROJET
Transient State
Garba
ity save() ge
ent
e of persist() saveOrUpdate()
nc Update()
sta
in
w
Ne
Delete() Garbage
Persistent State Removed State
Get()
Load()
Detach() Save()
Close() saveOrupdate()
Clear() Merge()
Evict() Lock() ge
Garba
Detached State