Hibernate et JSF
description
Transcript of Hibernate et JSF
![Page 1: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/1.jpg)
Présentation de frameworks J2EE
1LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 2: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/2.jpg)
Sommaire
A. Hibernate (Persistance)B. JSF (MVC)C. Cas d’étude
2LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 3: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/3.jpg)
Hibernate
Qu’est-ce qu’Hibernate ? Objectifs d’Hibernate Avantages et inconvénients Configuration d’Hibernate
3LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 4: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/4.jpg)
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/4LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 5: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/5.jpg)
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.
5LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 6: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/6.jpg)
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
6LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 7: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/7.jpg)
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.
7LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 8: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/8.jpg)
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
8LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 9: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/9.jpg)
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.4Version 1.2 associée à Java EE 5
9LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 10: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/10.jpg)
Objectifs de JSF
une séparation de la couche présentation des autres couches (MVC)
un mapping entre l’HTML et l’objetun ensemble de composants riches et
réutilisablesune 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, …)
10LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 11: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/11.jpg)
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
11LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 12: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/12.jpg)
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.
12LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 13: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/13.jpg)
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)
13LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 14: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/14.jpg)
Configuration d’une application JSF Indiquer si les objets importants
doivent être crées au démarrage de l‘application(com.sun.faces.verifyObjects)
14LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 15: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/15.jpg)
Cas d’étude
1. Sujet2. Création de la base de données3. Configuration des frameworks4. Gestion des classes5. Résultat final
15LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 16: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/16.jpg)
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...)
16LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 17: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/17.jpg)
Sujet : Uses cases
17LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 18: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/18.jpg)
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)
18LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 19: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/19.jpg)
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>
19LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 20: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/20.jpg)
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>
20LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 21: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/21.jpg)
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>
21LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 22: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/22.jpg)
Classes Java
1 fichier hibernateutil.javaPour Contact et Utilisateurs
1 fichier xxx.java Mapping du tableau
1 fichier xxxAction.java Classe fonctionnelle
1 fichier xxxBean.java Managed Bean
22LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 23: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/23.jpg)
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; } }
23LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 24: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/24.jpg)
Page de connexion
24LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 25: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/25.jpg)
Côté Administrateur
25LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 26: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/26.jpg)
Administration: Ajout d’un contact
26LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 27: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/27.jpg)
Côté Utilisateur
27LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 28: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/28.jpg)
Utilisateur: Ajout d’un contact
28LIU Sizhao LUO Xin MALICK MANDENGUE Serge
![Page 29: Hibernate et JSF](https://reader036.fdocument.pub/reader036/viewer/2022062309/5681493b550346895db685b6/html5/thumbnails/29.jpg)
Fin de la présentation
Merci!Auteurs
LIU SizhaoLUO Xin
MALICK MANDENGUE Serge
29LIU Sizhao LUO Xin MALICK MANDENGUE Serge