Vous êtes sur la page 1sur 29

Présentation de frameworks J2EE

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 1


Sommaire

A. Hibernate (Persistance)
B. JSF (MVC)
C. Cas d’étude

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 2


Hibernate

 Qu’est-ce qu’Hibernate ?
 Objectifs d’Hibernate
 Avantages et inconvénients
 Configuration d’Hibernate

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 3


Qu’est-ce qu’Hibernate ?

 C’est un logiciel, écrit en java, qui permet de


faire le mapping entre Objets Java et Objets
stockés en base relationnelle en assurant la
persistance.
 S’occupe du transfert des classes Java dans
les tables de la BDD et des types de données
dans les types de données SQL.
 http://www.hibernate.org/

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 4


Objectifs d’Hibernate

 Réduire le temps de développement de l'application en


éliminant une grande partie du code SQL à écrire pour
interagir avec la base de données et en encapsulant le
code SQL résiduel.
 Les développeurs manipulent les classes dont les
données doivent être persistantes comme des classes
Java normales.
 Seules une initialisation correcte d‘Hibernate doit être
effectuée, et quelques règles respectées lors de l'écriture
et de la manipulation des classes persistantes.

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 5


Avantages et inconvénients

 Les objets métiers sont plus faciles à manipuler


 Peu de dépendance envers une base de données
précise
 Théoriquement, il n'y a que le fichier de
configuration à changer si on passe d'une base
de données comme Oracle vers PostgreSQL
 Le seul inconvénient que l'on peut trouver à
Hibernate est qu'il nécessite d'apprendre à
l'utiliser

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 6


Configuration d’Hibernate

 Hibernate permet de manipuler facilement les objets


persistants mais demande une configuration rigoureuse.
 Nous verrons ici deux façons de configurer l'accès à la
base de données. Ces fichiers définissent les propriétés
de la connexion. Il s'agit des fichiers hibernate.properties
et hibernate.cfg.xml.
 Nous utilisons ce fichier de la configuration pour
configurer les informations du BDD et les informations
du mapping.

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 7


JSF (Java Server Faces)

 Qu’est-ce que JSF ?


 Objectifs de JSF
 Meilleur que Struts
 Qu’est-ce qu’une application JSF ?
 Configuration d’une application JSF

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 8


Qu’est-ce que JSF ?

 Framework de développement d’application


web en Java permettant de respecter le
modèle d’architecture MVC et basé sur des
composants côté présentation
 Site de référence:
http://java.sun.com/javaee/javaserverfaces
 2 implémentations JSF (Sun, Apache)
 Version 1.1 associée à J2EE 1.4
 Version 1.2 associée à Java EE 5
LIU Sizhao LUO Xin MALICK MANDENGUE Serge 9
Objectifs de JSF

 une séparation de la couche présentation des


autres couches (MVC)
 un mapping entre l’HTML et l’objet
 un ensemble de composants riches et
réutilisables
 une liaison simple entre les actions côté client
de l’utilisateur (event listener) et le code Java
côté serveur
 JSF peut être utilisé pour générer autre chose
que du HTML (XUL, XML, WML, …)
LIU Sizhao LUO Xin MALICK MANDENGUE Serge 10
Meilleur que Struts …

 Composants extensibles – JSF fournit plein de


composants fondamentaux pour développer des
nouveaux composants et on peut les participer aux
autres
 Managed-Beans (Dependency Injection) – JSF peut créer
des managed beans variés
 POJO Action Méthods – les actions du Struts sont
attachées avec les API du Struts, mais les actions du JSF
peuvent réaliser dans POJO
 JSF est le critère – Struts est un produit opensource, mais
JSF est le critère

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 11


Comment ça marche ?

 L’interface utilisateur construite dans la


page JSP est générée à l’aide de la
technologie JSF (résultat myUI)
 Elle fonctionne sur le serveur et le rendu est
retourné au client.

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 12


Configuration d’une
application JSF
 Configurer le fichier web.xml
(javax.faces.webapp.FacesServlet)
 Spécifier le nom et le chemin du fichier de
configuration
(javax.faces.application.CONFIG_FILES)
 Spécifie où l’état de l’application doit être
sauvé
(javax.faces.STATE_SAVING_METHOD)
 Valider ou pas les fichiers XML
(com.sun.faces.validateXml)
LIU Sizhao LUO Xin MALICK MANDENGUE Serge 13
Configuration d’une
application JSF
 Indiquer si les objets importants doivent être
crées au démarrage de
l‘application(com.sun.faces.verifyObjects)

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 14


Cas d’étude

1. Sujet
2. Création de la base de données
3. Configuration des frameworks
4. Gestion des classes
5. Résultat final

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 15


Sujet

 Logiciel de gestion de contacts en ligne


 (nom, prénom, num tél, mail, …)
 Cas d’utilisations volontairement simples :
 concentration sur les technologies
 à vous d’être originaux sur la réalisation
 Deux acteurs :
 l'administrateur qui va gérer la liste des utilisateurs et
les mots de passe (ajout, suppression, init mot de
passe, stats...)
 l'utilisateur qui va gérer ses contacts (ajout,
suppression, affichage, recherche, nb contacts...)
LIU Sizhao LUO Xin MALICK MANDENGUE Serge 16
Sujet : Uses cases

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 17


Création de la base de
données

 2 tables: Contacts et Utilisateurs


 Contacts (Id, Nom, Prénom, Adresse, Tel,
Mail, Id_user)
 Utilisateurs (Id, Nom, motdepasse, statut)

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 18


Configurations:
Hibernate.cfg.xml
 <hibernate-configuration>
 <session-factory >

 <!-- local connection properties -->


 <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 <property name="hibernate.connection.username">root</property>
 <property name="hibernate.connection.password"></property>
 <!-- property name="hibernate.connection.pool_size"></property -->

 <!-- dialect for MySQL -->


 <property name="current_session_context_class">thread</property>
 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

 <property name="hibernate.show_sql">false</property>
 <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
 <mapping resource="Utilisateurs.hbm.xml" />
 <mapping resource="Contacts.hbm.xml" />
 </session-factory>
 </hibernate-configuration>

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 19


Configurations:
Contacts.hbm.xml
 <hibernate-mapping package="CasEtude">
 <class
 name="Contacts"
 table="contacts"
 >
 <meta attribute="sync-DAO">false</meta>
 <id
 name="Id"
 type="integer"
 column="id"
 >
 <generator class="native"/>
 </id>

 <property
 name="Nom"
 column="nom"
 type="string"
 not-null="true"
 length="10"

 />
 ……
 </class>
 </hibernate-mapping>

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 20


Configurations:
Utilisateurs.hbm.xml
 <hibernate-mapping package="CasEtude">
 <class
 name="Utilisateurs"
 table="utilisateurs"
 >
 <meta attribute="sync-DAO">false</meta>
 <id
 name="Id"
 type="integer"
 column="id"
 >
 <generator class="native"/>
 </id>
 …
 </class>
 </hibernate-mapping>

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 21


Classes Java

 1 fichier hibernateutil.java
 Pour Contact et Utilisateurs
 1 fichier xxx.java
 Mapping du tableau
 1 fichier xxxAction.java
 Classe fonctionnelle
 1 fichier xxxBean.java
 Managed Bean

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 22


Fichier HibernateUtil.java
 public class HibernateUtil {
 private static final SessionFactory sessionFactory; static {
 try {
 // Crée l’objet SessionFactory à partir de hibernate.cfg.xml
 sessionFactory = new Configuration().configure().buildSessionFactory(); }
 catch (HibernateException ex) {
 System.err.println("Initial SessionFactory creation failed." + ex);
throw new HibernateException(ex);
 }
 }
 public static SessionFactory getSessionFactory() {
 return sessionFactory; }
 }

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 23


Page de connexion

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 24


Côté Administrateur

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 25


Administration: Ajout d’un
contact

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 26


Côté Utilisateur

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 27


Utilisateur: Ajout d’un
contact

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 28


Fin de la présentation

Merci!
Auteurs
LIU Sizhao
LUO Xin
MALICK MANDENGUE Serge

LIU Sizhao LUO Xin MALICK MANDENGUE Serge 29

Vous aimerez peut-être aussi