Formation Java Projet final de la formation Infotel : Gestion des cartes grises Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 1 Sommaire o Introduction o Contexte o Logiciel de saisie Swing Web Service o Application web Couche Vue : JSF Couche Métier : Modèles DAO : JDBC et Hibernate Couche Contrôleur : Services o Conclusion Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 2 Introduction o Projet de validation de la formation JAVA/J2EE o Web-To-Database: XML JAVA • Swing, DOM4J J2EE • Spring, Hibernate, JSF Base de données Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 3 Contexte •Création d’un logiciel de gestion des cartes grises Logiciel de saisie Données carte grises Application Web Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 4 Logiciel de saisie Formulaire : Création d’une carte grise Création fichier XML Spring Web Service Amandine SOURY Bertrand DUCOULOMBIER Swing Création Document XML Envoi sur le serveur Formation Java J2EE - Décembre 2010 - 5 Logiciel de saisie Swing • Swing : bibliothèque de composants et gestion graphique Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 6 Logiciel de saisie Spring Web Service o Web Service: mécanisme de communication entre applications distantes indépendant de tout langage de programmation o Spring Web Service : framework de la communauté Spring dédié à la création de services orientés objets o Protocole HTTP pour les requêtes et les réponses o XML : transition entre le client et le serveur, il est reçu et retourné par le Web Service Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 7 Application Web Contrôleur Services Vue Métier JSF Modèles Amandine SOURY Bertrand DUCOULOMBIER DAO Base de données Hibernate MySQL Formation Java J2EE - Décembre 2010 - 8 Application Web Couche Vue : JSF o Java Server Faces : framework Java pour le développement d'applications Web. o Ajax : Combinaison de technologies permettant la création de site Web dynamique Modification de la page sans rechargement de celle-ci Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 9 Application Web Couche Métier : Modèles Utilisateur public class Utilisateur { UTL_ID UTL_NOM UTL_PRENOM UTL_MOT_PASSE private String pseudo; private String nom; private String prenom; private String mdp; public String getPseudo() { return pseudo; } //… } Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 10 Application Web DAO : JDBC Utilisateur UTL_ID UTL_NOM UTL_PRENOM UTL_MOT_PASSE public class Utilisateur { private String pseudo; private String nom; private String prenom; private String mdp; public String getPseudo() { return pseudo; } //… } Amandine SOURY Bertrand DUCOULOMBIER … finally{ public List<Modele> listerModele()throws PrefectureException{ List<Modele> listModele=new ArrayList<Modele>(); Connection cx = null; PreparedStatement st = null; ResultSet resultat = null; try { cx = getConnection(); st= cx.prepareStatement("SELECT MOD_ID , MOD_DESIGNATION from modele "); resultat=st.executeQuery(); while(resultat.next()){ int idModele=resultat.getInt(1); String nomModele=resultat.getString(2); listModele.add(new Modele(idModele, nomModele)); } return listModele; } catch (Exception e) { throw new PrefectureException(e); } … Formation Java J2EE - Décembre 2010 - try { if (resultat != null) resultat.close(); } catch (Exception e) { e.printStackTrace(); } try { if (st != null) st.close(); } catch (Exception e) { e.printStackTrace(); } try { if (cx != null) cx.close(); } catch (Exception e) { e.printStackTrace(); } } } 11 Application Web DAO : Hibernate Utilisateur public class Utilisateur { UTL_ID UTL_NOM UTL_PRENOM UTL_MOT_PASSE private String pseudo; private String nom; private String prenom; private String mdp; public String getPseudo() { return pseudo; } //… public List<Modele> listerModele() throws PrefectureException { Session session; session=getSession(); List<Modele> listModele = new ArrayList<Modele>(); try { Query q=session.createQuery("from Modele m " + "left join fetch m.marque " + "left join fetch m.type"); listModele = q.list(); catch (Exception e) { throw new PrefectureException(e); } return listModele; } } Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 12 Application Web DAO : Hibernate Mapping par annotations @Entity @Table(name= "CARTE_GRISE" ) public class CarteGrise { @Id @Column(name= "CGI_IMMATRICULATION" ) private String immatriculation; @Column(name= "CGI_PUISS_ADMIN" ) private int puissanceAdmin; CARTE_GRISE CGI_IMMATRICULATION CGI_PUISS_ADMIN public String getImmatriculation() { return immatriculation; } //… } Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 13 Application Web DAO : Hibernate o Requêtage par HQL Transposition de SQL dans le monde objet Expression d’une requête sur une classe from CarteGrise cg where cg.vehicule. puissance = ‘50’ FROM CARTE_GRISE, VEHICULE WHERE CARTE_GRISE. CGI_VEH_NUM_SERIE = VEHICULE. VEH_NUM_SERIE AND VEHICULE. VEH_PUISS = ’50’ Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 14 Application Web Couche Contrôleur : Services o Lien entre la couche vue et la couche métier Fait appel au DAO Transactionnelle @Service("service") @Transactional public class PrefectureServiceImpl implements PrefectureService { Contrôleur Services @Resource(name="utilisateur") private InterfaceUtilsateurDao utilisateurDao; //… } Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - Vue Métier JSF Modèles 15 Conclusion o Projet enrichissant et formateur o Large éventail de technologies vues et utilisées o En adéquation avec notre carrière à court terme o Points d’amélioration: o Contrôle des données de saisie sur les interfaces client o Mise en place de filtre pour l’interface WEB o Passer l’interface graphique Web en Flex Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 16 Formation Java Merci de votre attention Avez-vous des questions? Amandine SOURY Bertrand DUCOULOMBIER Formation Java J2EE - Décembre 2010 - 17