SlideShare une entreprise Scribd logo

Formation JAVA/J2EE

Ines Ouaz
Ines Ouaz

Présentation d'un cours en JAVA/J2EE Création et manipulations des objets en Java ** Connexion JDBC à la base de données ** Modèle en couches ** FrameworkHibernate ** Framewoek Spring MVC

1  sur  44
Télécharger pour lire hors ligne
FORMATION JAVA/J2EE
2014/2015
DEF (DÉVELOPPEMENT/ENCADREMENT/FORMATION)
JAVA/J2EE: Objet/Connexion
JDBC/Hibernate/JPA/Servlet/JSP/Spring MVC
/Serveur d’application Tomcat
1
Java/J2EE
PLAN DU COURS
1. Mise en place de l’environnement de travail
2. Création et manipulations des objets en Java
3. TP1 : Connexion JDBC à la base de données
4. TP2 : Framework
5. TP3 : Application web J2EE
6. TP4 : Implémentation et Utilisation de Spring
MVC
7. TP5 : Développement d’un site de commerce
électronique en J2EE avec Spring MVC,
Hibernate, JPA, JSP , MySql…
2014/2015
12
Java/J2EE
QU’EST CE QUE JAVA? (1)
 Langage de programmation orienté objet (Classe, Objet,
Héritage, Encapsulation et Polymorphisme)
 Avec java on peut créer des application
multiplateformes. Les applications java sont portables.
C’est-à-dire, on peut créer une application java dans une
plateforme donnée et on peut l’exécuter sur n’importe
quelle autre plateforme.
 Le principe de java est : Write Once Run Every Where
 Open source: On peut récupérer le code source de java.
Ce qui permet aux développeurs, en cas de besoin, de
développer ou modifier des fonctionnalités de java.
2014/2015
3
Java/J2EE
QU’EST CE QUE JAVA? (2)
 Java est utilisé pour créer :
 Des applications Desktop
 Des applets java (applications java destinées à s’exécuter dans une
page web)
 Des applications pour les smart phones
 Des applications embarquées dans des cartes à puces
 Des application JEE (Java Entreprise Edition)
 Pour créer une application java, il faut installer un kit de
développement java
 JSDK : Java Standard Developpement Kit, pour développer les
application DeskTop
 JME : Java Mobile Edition, pour développer les applications pour
les téléphones potables
 JEE : Java Entreprise Edition, pour développer les applications qui
vont s’exécuter dans un serveur d’application JEE (Web Sphere Web
Logic, JBoss).
 JCA : Java Card Edition, pour développer les applications qui vont
s’éxécuter dans des cartes à puces.
2014/2015
4
Java/J2EE
MÉTHODE ORIENTÉ OBJET
 La méthode orientée objet permet de concevoir une
application sous la forme d'un ensemble d'objets reliés entre
eux par des relations
 Lorsque que l'on programme avec cette méthode, la
première question que l’on se pose plus souvent est :
 «qu'est-ce que je manipule ? »,
 Au lieu de « qu'est-ce que je fait ? ».
 L'une des caractéristiques de cette méthode permet de
concevoir de nouveaux objets à partir d'objets existants.
 On peut donc réutiliser les objets dans plusieurs applications.
 La réutilisation du code fut un argument déterminant pour
venter les avantages des langages à objets.
 Pour faire la programmation orientée objet il faut maitriser
les fondamentaux de l’orienté objet à savoir:
 Objet et classe
 Héritage
 Encapsulation (Accessibilité)
 Polymorphisme
2014/2015
5
Java/J2EE
OBJET JAVA
 Un objet est une structure informatique définie par un
état et un comportement
 Objet=état + comportement
 L’état regroupe les valeurs instantanées de tous les
attributs de l’objet.
 Le comportement regroupe toutes les compétences
et décrit les actions et les réactions de l’objet.
Autrement dit le comportement est défini par les
opérations que l’objet peut effectuer.
 L’état d’un objet peut changer dans le temps.
 Généralement, c’est le comportement qui modifie l’état
de l’objet
2014/2015
6
Java/J2EE

Contenu connexe

Tendances

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 

Tendances (20)

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 

Similaire à Formation JAVA/J2EE

Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemeStéphane Traumat
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbcInes Ouaz
 
Introduction jdbc
Introduction  jdbcIntroduction  jdbc
Introduction jdbcKarim Amane
 
Certification java oracle java se 7 programmer
Certification java oracle   java se 7 programmerCertification java oracle   java se 7 programmer
Certification java oracle java se 7 programmerEGILIA Learning
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev javaAmel Morchdi
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adfBacely YoroBi
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 

Similaire à Formation JAVA/J2EE (20)

Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Springioc
SpringiocSpringioc
Springioc
 
2 ModéLe Mvc
2 ModéLe Mvc2 ModéLe Mvc
2 ModéLe Mvc
 
Support cours j2_ee
Support cours j2_eeSupport cours j2_ee
Support cours j2_ee
 
Connexion jdbc
Connexion jdbcConnexion jdbc
Connexion jdbc
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Introduction jdbc
Introduction  jdbcIntroduction  jdbc
Introduction jdbc
 
Certification java oracle java se 7 programmer
Certification java oracle   java se 7 programmerCertification java oracle   java se 7 programmer
Certification java oracle java se 7 programmer
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev java
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Ejb3 2-session-beans fr
Ejb3 2-session-beans frEjb3 2-session-beans fr
Ejb3 2-session-beans fr
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 

Plus de Ines Ouaz

Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes Ouaz
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'artInes Ouaz
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Cv Ouaz Ines
Cv Ouaz InesCv Ouaz Ines
Cv Ouaz InesInes Ouaz
 
Environnement java
Environnement javaEnvironnement java
Environnement javaInes Ouaz
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateInes Ouaz
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASDInes Ouaz
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesInes Ouaz
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHPInes Ouaz
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionInes Ouaz
 
Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Ines Ouaz
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap IIIInes Ouaz
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap IIInes Ouaz
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 

Plus de Ines Ouaz (18)

Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Cv Ouaz Ines
Cv Ouaz InesCv Ouaz Ines
Cv Ouaz Ines
 
Environnement java
Environnement javaEnvironnement java
Environnement java
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASD
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap III
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 

Dernier

La reproduction chez l’homme cours à ce propos
La reproduction chez l’homme cours à ce proposLa reproduction chez l’homme cours à ce propos
La reproduction chez l’homme cours à ce proposFatima Ezahra Rochdi
 
Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqTxaruka
 
Evaluation universitaire AI TELUQ 2024.pdf
Evaluation universitaire AI TELUQ 2024.pdfEvaluation universitaire AI TELUQ 2024.pdf
Evaluation universitaire AI TELUQ 2024.pdfMathieu Plourde
 
Images-Collapso-V3.pptx Images sur les limites planétaires
Images-Collapso-V3.pptx Images sur les limites planétairesImages-Collapso-V3.pptx Images sur les limites planétaires
Images-Collapso-V3.pptx Images sur les limites planétairesProvisoire Karendeux
 
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...Michael Barbour
 

Dernier (6)

La reproduction chez l’homme cours à ce propos
La reproduction chez l’homme cours à ce proposLa reproduction chez l’homme cours à ce propos
La reproduction chez l’homme cours à ce propos
 
Cours prothèse dentaire bac professionnel
Cours prothèse dentaire bac professionnelCours prothèse dentaire bac professionnel
Cours prothèse dentaire bac professionnel
 
Fabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie DarrieussecqFabriquer une femme.Livre écrit par Marie Darrieussecq
Fabriquer une femme.Livre écrit par Marie Darrieussecq
 
Evaluation universitaire AI TELUQ 2024.pdf
Evaluation universitaire AI TELUQ 2024.pdfEvaluation universitaire AI TELUQ 2024.pdf
Evaluation universitaire AI TELUQ 2024.pdf
 
Images-Collapso-V3.pptx Images sur les limites planétaires
Images-Collapso-V3.pptx Images sur les limites planétairesImages-Collapso-V3.pptx Images sur les limites planétaires
Images-Collapso-V3.pptx Images sur les limites planétaires
 
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
DLAC 2024 - L’état de l’apprentissage électronique de la maternelle à la 12e ...
 

Formation JAVA/J2EE

  • 1. FORMATION JAVA/J2EE 2014/2015 DEF (DÉVELOPPEMENT/ENCADREMENT/FORMATION) JAVA/J2EE: Objet/Connexion JDBC/Hibernate/JPA/Servlet/JSP/Spring MVC /Serveur d’application Tomcat 1 Java/J2EE
  • 2. PLAN DU COURS 1. Mise en place de l’environnement de travail 2. Création et manipulations des objets en Java 3. TP1 : Connexion JDBC à la base de données 4. TP2 : Framework 5. TP3 : Application web J2EE 6. TP4 : Implémentation et Utilisation de Spring MVC 7. TP5 : Développement d’un site de commerce électronique en J2EE avec Spring MVC, Hibernate, JPA, JSP , MySql… 2014/2015 12 Java/J2EE
  • 3. QU’EST CE QUE JAVA? (1)  Langage de programmation orienté objet (Classe, Objet, Héritage, Encapsulation et Polymorphisme)  Avec java on peut créer des application multiplateformes. Les applications java sont portables. C’est-à-dire, on peut créer une application java dans une plateforme donnée et on peut l’exécuter sur n’importe quelle autre plateforme.  Le principe de java est : Write Once Run Every Where  Open source: On peut récupérer le code source de java. Ce qui permet aux développeurs, en cas de besoin, de développer ou modifier des fonctionnalités de java. 2014/2015 3 Java/J2EE
  • 4. QU’EST CE QUE JAVA? (2)  Java est utilisé pour créer :  Des applications Desktop  Des applets java (applications java destinées à s’exécuter dans une page web)  Des applications pour les smart phones  Des applications embarquées dans des cartes à puces  Des application JEE (Java Entreprise Edition)  Pour créer une application java, il faut installer un kit de développement java  JSDK : Java Standard Developpement Kit, pour développer les application DeskTop  JME : Java Mobile Edition, pour développer les applications pour les téléphones potables  JEE : Java Entreprise Edition, pour développer les applications qui vont s’exécuter dans un serveur d’application JEE (Web Sphere Web Logic, JBoss).  JCA : Java Card Edition, pour développer les applications qui vont s’éxécuter dans des cartes à puces. 2014/2015 4 Java/J2EE
  • 5. MÉTHODE ORIENTÉ OBJET  La méthode orientée objet permet de concevoir une application sous la forme d'un ensemble d'objets reliés entre eux par des relations  Lorsque que l'on programme avec cette méthode, la première question que l’on se pose plus souvent est :  «qu'est-ce que je manipule ? »,  Au lieu de « qu'est-ce que je fait ? ».  L'une des caractéristiques de cette méthode permet de concevoir de nouveaux objets à partir d'objets existants.  On peut donc réutiliser les objets dans plusieurs applications.  La réutilisation du code fut un argument déterminant pour venter les avantages des langages à objets.  Pour faire la programmation orientée objet il faut maitriser les fondamentaux de l’orienté objet à savoir:  Objet et classe  Héritage  Encapsulation (Accessibilité)  Polymorphisme 2014/2015 5 Java/J2EE
  • 6. OBJET JAVA  Un objet est une structure informatique définie par un état et un comportement  Objet=état + comportement  L’état regroupe les valeurs instantanées de tous les attributs de l’objet.  Le comportement regroupe toutes les compétences et décrit les actions et les réactions de l’objet. Autrement dit le comportement est défini par les opérations que l’objet peut effectuer.  L’état d’un objet peut changer dans le temps.  Généralement, c’est le comportement qui modifie l’état de l’objet 2014/2015 6 Java/J2EE
  • 7. LES CLASSES  Les objets qui ont des caractéristiques communes sont regroupés dans une entité appelé classe.  La classe décrit le domaine de définition d’un ensemble d’objets.  Chaque objet appartient à une classe  Les généralités sont contenues dans les classes et les particularités dans les objets.  Les objets informatique sont construits à partir de leur classe par un processus qui s’appelle l’instanciation.  Tout objet est une instance d’une classe. 2014/2015 7 Java/J2EE
  • 8. CARACTÉRISTIQUES D’UNE CLASSE  Une classe est définit par: ses attributs & ses méthodes  Les attributs permettent de décrire l’état de des objets de cette classe. Chaque attribut est défini par:  Son nom  Son type  Éventuellement sa valeur initiale  Les méthodes permettent de décrire le comportement des objets de cette classe.  Une méthode représente une procédure ou une fonction qui permet d’exécuter un certain nombre d’instructions.  Parmi les méthode d’une classe, existe deux méthodes particulières:  Une méthode qui est appelée au moment de la création d’un objet de cette classe. Cette méthode est appelée CONSTRUCTEUR  Une méthode qui est appelée au moment de la destruction d’un objet. Cette méthode s’appelle le DESTRUCTEUR 2014/2015 8 Java/J2EE
  • 9. PROBLÈME  On souhaite créer un site web de commerce électronique qui se compose de deux parties :  Une partie back office qui nécessite une authentification et qui permet de gérer les produits et les catégories  L’administrateur a la possibilités de gérer les catégories et les produits (Ajout, suppression, Edition, Modification et consultation) ainsi que les droits d’accès  Une partie front office qui représentent la boutique virtuelle qui ne nécessite pas d’authentification. Dans cette partie l’utilisateur a la possibilités de :  Consulter toutes les catégories  Consulter les produits d’une catégorie  Consulter les produits sélectionnés  Chercher des produits par mot clé  Ajouter un produit avec une quantité au panier  Supprimer un produit du panier  Enregistrer le client et la commande des produits de son panier. 2014/2015 9 Java/J2EE
  • 12. MAPPING OBJET/RELATIONNEL (1)  Dans la pratique, on cherche toujours à séparer la logique de métier de la logique de présentation.  On peut dire qu’on peut diviser une application en 3 couches:  La couche d’accès aux données: DAO Partie de l’application qui permet d’accéder aux données de l’applications . Ces données sont souvent stockées dans des bases de données relationnelles .  La couche Métier: Regroupe l’ensemble des traitements que l’application doit effectuer.  La couche présentation: S’occupe de la saisie des données et de l’affichage des résultats; 2014/2015 12 Java/J2EE
  • 13. MAPPING OBJET/RELATIONNEL (2)  D’une manière générale les applications sont orientée objet :  Manipulation des objet et des classes  Utilisation de l’héritage et de l’encapsulation  Utilisation du polymorphisme  D’autres part les données persistantes sont souvent stockées dans des bases de données relationnelles.  Le mapping Objet relationnel consiste à faire correspondre un enregistrement d’une table de la base de données à un objet d’une classe correspondante.  Dans ce cas on parle d’une classe persistante.  Une classe persistante est une classe dont l’état de ses objets sont stockés dans une unité de sauvegarde (Base de données, Fichier, etc..) 2014/2015 13 Java/J2EE
  • 14. ARCHITECTURE D’UNE APPLICATION  Une application se compose de plusieurs couches:  La couche DAO qui s’occupe de l’accès aux bases de données.  La couche métier qui s’occupe des traitements.  La couche présentation qui s’occupe de la saisie, le contrôle et l’affichage des résultats. Généralement la couche présentation respecte le pattern MVC qui fonctionne comme suit: 1. La vue permet de saisir les données, envoie ces données au contrôleur 2. Le contrôleur récupère les données saisies. Après la validation de ces données, il fait appel à la couche métier pour exécuter des traitements. 3. Le contrôleur stocke le résultat de le modèle. 4. Le contrôleur fait appel à la vue pour afficher les résultats. 5. La vue récupère les résultats à partir du modèle et les affiche. 2014/2015 14 Java/J2EE
  • 16. 2014/2015 ACCÈS AUX BASES DE DONNÉES VIA JDBC 16 Java/J2EE
  • 17. PILOTES JDBC  Pour qu’une application java puisse communiquer avec un serveur de bases de données, elle a besoin d’utiliser les pilotes JDBC (Java Data Base Connectivity)  Les Pilotes JDBC est une bibliothèque de classes java qui permet, à une application java, de communiquer avec un SGBD via le réseau en utilisant le protocole TCP/IP  Chaque SGBD possède ses propres pilotes JDBC.  Il existe un pilote particulier « JdbcOdbcDriver » qui permet à une application java communiquer avec n’importe quelle source de données via les pilotes ODBC (Open Data Base Connectivity)  Les pilotes ODBC permettent à une application Windows de communiquer une base de données quelconque (Access, Excel, MySQL, Oracle, SQL SERVER etc…)  La bibliothèque JDBC a été conçu comme interface pour l’exécution de requêtes SQL.Une application JDBC est isolée des caractéristiques particulières du système de base de données utilisé. 2014/2015 17 Java/J2EE
  • 19. CRÉER UNE APPLICATION JDBC  Pour créer une application élémentaire de manipulation d’une base de données il faut suivre les étapes suivantes :  Chargement du Pilote JDBC ;  Identification de la source de données ;  Allocation d’un objet Connection  Allocation d’un objet Instruction Statement ou PreparedStatement  Exécution d’une requête à l’aide de l’objet Statement ;  Récupération de données à partir de l’objet renvoyé ResultSet ;  Fermeture de l’objet ResultSet ;  Fermeture de l’objet Statement ;  Fermeture de l’objet Connection. 19 Java/J2EE2014/2015
  • 20. CRÉER UNE APPLICATION JDBC 20 Java/J2EE2014/2015
  • 21. DÉMARCHE JDBC  Charger les pilotes JDBC :  Utiliser la méthode forName de la classe Class, en précisant le nom de la classe pilote.  Exemples:  Pour charger le pilote JdbcOdbcDriver: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;  Pour charger le pilote jdbc de MySQL: Class.forName("com.mysql.jdbc.Driver") ; 21 Java/J2EE2014/2015
  • 22. CRÉER UNE CONNEXION  Pour créer une connexion à une base de données, il faut utiliser la méthode statique getConnection() de la classe DriverManager. Cette méthode fait appel aux pilotes JDBC pour établir une connexion avec le SGBDR, en utilisant les sockets.  Pour un pilote com.mysql.jdbc.Driver : Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/DB", "user", "pass" );  Pour un pilote sun.jdbc.odbc.JdbcOdbcDriver : Connectio conn= DriverManager.getConnection ("jdbc:odbc:dsnSCO", "user", "pass" ); 22 Java/J2EE2014/2015
  • 23. OBJETS STATEMENT & RESULTSET  Pour exécuter une requête SQL, on peut créer l’objet Statement en utilisant la méthode createStatement() de l’objet Connection. Statement st=conn.createStatement();  Pour exécuter une requête SQL de type select, on peut utiliser la méthode executeQuery() de l’objet Statement. Cette méthode exécute la requête et stocke le résultat de la requête dans l’objet ResultSet: ResultSet rs=st.executeQuery("select * from produit");  Pour exécuter une requête SQL de type insert, update et delete on peut utiliser la méthode executeUpdate() de l’objet Statement : st.executeUpdate("insert into produit(…) values(…)"); 23 Java/J2EE2014/2015
  • 24. OBJET PREPAREDSTATEMENT  Pour exécuter une requête SQL, on peut également créer l’objet PreparedStatement en utilisant la méthode prepareStatement() de l’objet Connection. PreparedStatement ps=conn.prepareStatement("select * from PRODUITS where NOM_PROD like ? AND PRIX<?");  Définir les valeurs des paramètres de la requête: ps.setString(1,"%"+motCle+"%"); ps.setString(2, p);  Pour exécuter une requête SQL de type select, on peut utiliser la méthode executeQuery() de l’objet Statement. Cette méthode exécute la requête et stocke le résultat de la requête dans l’objet ResultSet: ResultSet rs=ps.executeQuery();  Pour exécuter une requête SQL de type insert, update et delete on peut utiliser la méthode executeUpdate() de l’objet Statement : ps.executeUpdate(); 24 Java/J2EE2014/2015
  • 25. LES DONNÉES D’UN RESULTSET  Pour parcourir un ResultSet, on utilise sa méthode next() qui permet de passer d’une ligne à l’autre. Si la ligne suivante existe, la méthode next() retourne true. Si non elle retourne false.  Pour récupérer la valeur d’une colonne de la ligne courante du ResultSet, on peut utiliser les méthodes getInt(colonne), getString(colonne), getFloat(colonne), getDouble(colonne), getDate(colonne), etc… colonne représente le numéro ou le nom de la colonne de la ligne courante.  Syntaxte: while(rs.next()){ System.out.ptintln(rs.getInt(1)); System.out.ptintln(rs.getString("NOM_PROD")); System.out.ptintln(rs.getDouble("PRIX")); } 25 Java/J2EE2014/2015
  • 27. INTRODUCTION  Travailler dans les deux univers que sont l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps dans le monde de l'entreprise d'aujourd'hui.  Hibernate est un outil de mapping objet/relationnel pour le monde Java.  Le terme mapping objet/relationnel (ORM) décrit la technique consistant à faire le lien entre la représentation objet des données et sa représentation relationnelle basée sur un schéma SQL. 2014/2015 27 Java/J2EE
  • 28. HIBERNATE?  Hibernate s'occupe du transfert des objets Java dans les tables de la base de données  En plus, il permet de requêter les données et propose des moyens de les récupérer.  Il peut donc réduire de manière significative le temps de développement qui aurait été autrement perdu dans une manipulation manuelle des données via SQL et JDBC  Le but d'Hibernate est de libérer le développeur de 95% des tâches de programmation liées à la persistance des données communes.  Hibernate assure la portabilité de votre application si vous changer de SGBD.  Hibernate propose au développeur des méthodes d’accès aux bases de données plus efficace ce qui devrait rassurer les développeurs. 2014/2015 28 Java/J2EE
  • 29. ARCHITECTURE HIBERNTE  Hibernate permet d’assurer la persistance des objets de l’application dans un entrepôt de données.  Cet entrepôt de données est dans la majorité des cas une base de données relationnelle, mais il peut être un fichier XML.  Le mapping des objets est effectuée par Hibernate en se basant sur des fichiers de configuration en format texte ou souvent XML. 2014/2015 29 Java/J2EE
  • 30. ARBORESCENCE DU PROJET  Package def.hibernate.dto  Produit.java  Produit.hbm.xml (fichier de mapping xml)  Package def.hibernate.presentation  Classe principal main de test  Package def.hibernate.metier  IProduitService (interface)  ProduitServiceImpl (implémentation)  Package def.hibernate.dao  IProduitDAO  ProduitDAOImpl  Package def.hibernate.utils  HibernateUtil Le fichier de configuration Hibernate hibernate.cfg.xml 2014/2015 30 Java/J2EE
  • 31. MAPPER LA CLASSE PRODUIT  Chaque classe persistante doivent être mapper à l’aide d’un fichier hbm.xml.  Créer un fichier Produit.hbm.xml pour mapper la classe Produit.java  Le fichier doit définir le nom de la table ainsi que les champs correspondants. 2014/2015 31 Java/J2EE
  • 32. FICHIER DE CONFIGURATION  Création du fichier hibernate.cfg.xml sous la racine du projet.  Configuration des données liées à la base:driver, url, le login et le mot de passe.  Définir l’ensemble des fichiers de Mapping hbm.xml 2014/2015 32 Java/J2EE
  • 33. CLASSE D’ACCÈS AUX DONNÉES DAO (1)  Définir les méthodes à implémenter dans une interface: IProduitDAO (pas d’implémentation)  Méthode d’ajout insertProduit (objet chargé en paramètre d’entré)  Méthode de modification updateProduit  Méthode de Suppression deleteProduit  Méthode de recherche exemple: listProduitByMC (type de retour liste de produit) 2014/2015 33 Java/J2EE
  • 34.  Implémenter la méthode d’insertion d’un produit:  Ouvrir une session de sessionFactory d’Hibernate  Commencer une transaction  Enregistrer l’objet produit avec la méthode save d’hibernate  Commiter la transaction  Fermer la session d’hibernate. 2014/2015 34 Java/J2EE CLASSE D’ACCÈS AUX DONNÉES DAO (2)
  • 36. FRAMEWORK SPRING  Spring est un framework open source JEE pour les applications ntiers, dont il facilite le développement et les tests.  Il est considéré comme un conteneur dit « léger », c’est-à-dire une infrastructure similaire à un serveur d’application J2EE.  Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets.  Il permet de séparer le code métier du code technique Spring s’appuie principalement sur l’intégration de trois concepts clés:  l’inversion de contrôle ou injection de dépendance (IoC).  la programmation orientée aspect (AOP).  une couche d’abstraction.  Ce framework, grâce à sa couche d’abstraction, ne concurrence pas d’autres frameworks dans une couche spécifique d’un modèle architectural MVC mais s’avère un framework multi- couches pouvant s’insérer au niveau de toutes les couches. 2014/2015 36 Java/J2EE
  • 37. INJECTION DES DÉPENDANCES AVEC SPRING (1)  L’injection des dépendance, ou l’inversion de contrôle est un concept qui intervient généralement au début de l’exécution de l’application.  Spring IOC commence par lire un fichier XML qui déclare quelles sont différentes classes à instancier et d’assurer les dépendances entre les différentes instances.  Quand on a besoin d’intégrer une nouvelle implémentation à une application, il suffirait de la déclarer dans le fichier xml de beans spring. 2014/2015 37 Java/J2EE
  • 38. INJECTION DES DÉPENDANCES AVEC SPRING (2)  Dans une application web, SpringIOC est appelé au démarrage du serveur en déclarant le listener ContextLoaderListener dans le fichier web.xml  Dans cette déclaration, CotextLoaderListener est appelé par Tomcat au moment du démarrage de l’application. Ce listener cherchera le fichier de beans spring « spring- beans.xml » stocké dans le dossier WEB-INF. ce qui permet de faire l’injection des dépendances entre MetierImpl et DaoImpl 2014/2015 38 Java/J2EE
  • 40. SPRING MVC (1) 1. le client fait une demande au contrôleur. Celui-ci voit passer toutes les demandes des clients. C'est la porte d'entrée de l'application. C'est le C de MVC. Ici le contrôleur est assuré par une servlet générique : org.springframework.web.servlet.DispatcherServlet 2. le contrôleur principal [DispatcherServlet] fait exécuter l'action demandée par l'utilisateur par une classe implémentant l'interface : org.springframework.web.servlet.mvc.Controller  A cause du nom de l'interface, nous appellerons une telle classe un contrôleur secondaire pour le distinguer du contrôleur principal [DispatcherServlet] ou simplement contrôleur lorsqu'il n'y a pas d'ambiguïté. 3. le contrôleur [Controller] traite une demande particulière de l'utilisateur. Pour ce faire, il peut avoir besoin de l'aide de la couche métier. Une fois la demande du client traitée, celle-ci peut appeler diverses réponses. Un exemple classique est :  une page d'erreurs si la demande n'a pu être traitée correctement  une page de confirmation sinon 2014/2015 40 Java/J2EE
  • 41. SPRING MVC (2) 4. Le contrôleur choisit la réponse (= vue) à envoyer au client. Choisir la réponse à envoyer au client nécessite plusieurs étapes :  choisir l'objet qui va générer la réponse. C'est ce qu'on appelle la vue V, le V de MVC. Ce choix dépend en général du résultat de l'exécution de l'action demandée par l'utilisateur.  lui fournir les données dont il a besoin pour générer cette réponse. En effet, celle-ci contient le plus souvent des informations calculées par la couche métier ou le contrôleur lui-même. Ces informations forment ce qu'on appelle le modèle M de la vue, le M de MVC.  Cette étape consiste donc en le choix d'une vue V et la construction du modèle M nécessaire à celle-ci. 2014/2015 41 Java/J2EE
  • 42. SPRING MVC (3) 5. Le contrôleur DispatcherServlet demande à la vue choisie de s'afficher. Il s'agit d'une classe implémentant l'interface org.springframework.web.servlet.View  Spring MVC propose différentes implémentations de cette interface pour générer des flux HTML, Excel, PDF, ... 6. le générateur de vue View utilise le modèle Map préparé par le contrôleur Controller pour initialiser les parties dynamiques de la réponse qu'il doit envoyer au client. 7. la réponse est envoyée au client. La forme exacte de celle-ci dépend du générateur de vue. Ce peut être un flux HTML, XML, PDF, Excel, ... 2014/2015 42 Java/J2EE
  • 44. LE FICHIER ROOT-CONTEXT.XML  Ce fichier est lu par ContextLoaderListener, au démarrage du serveur .  C’est un fichier dans lequel contexte de l’application sera construit ContextLoaderListener représente Spring IOC  C’est donc un fichier pour l’injection des dépendances  Pour le moment, il est vide 2014/2015 44 Java/J2EE