SlideShare ist ein Scribd-Unternehmen logo
1 von 44
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
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
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
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
ARCHITECTURE
2014/2015
10
Java/J2EE
DIAGRAMME DE CLASSE
2014/2015
11
Java/J2EE
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
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
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
ARCHITECTURE D’UNE APPLICATION
2014/2015
15
Java/J2EE
2014/2015
ACCÈS AUX BASES DE
DONNÉES VIA JDBC
16
Java/J2EE
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
JAVA & JDBC
2014/2015
18
Java/J2EE
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
CRÉER UNE APPLICATION JDBC
20
Java/J2EE2014/2015
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
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
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
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
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
2014/2015
LE FRAMEWORK
HIBERNATE
26
Java/J2EE
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
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
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
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
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
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
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
 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)
2014/2015
LE FRAMEWORK SPRING
MVC
35
Java/J2EE
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
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
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
ARCHITECTURE SPRING MVC
2014/2015
39
Java/J2EE
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
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
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
FONCTIONNEMENT
2014/2015
43
Java/J2EE
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)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
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8Antoine Rey
 
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
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 

Was ist angesagt? (20)

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
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
 
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
 
Cours java
Cours javaCours java
Cours java
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
React-cours.pdf
React-cours.pdfReact-cours.pdf
React-cours.pdf
 
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
 
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 programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
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
 
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)
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8
 
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
 
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
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 

Ähnlich wie Formation JAVA/J2EE

Ähnlich wie 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
 
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...
 
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
 

Mehr von Ines Ouaz

Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes 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
 

Mehr von Ines Ouaz (17)

Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
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
 

Kürzlich hochgeladen

Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 

Kürzlich hochgeladen (20)

Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 

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