Mission 3 : MISE A JOUR DES RENDEZ-VOUS Une base de données permet d exploiter localement les informations concernant les rendez-vous. Elle comporte entre autres une table RDV mémorisant l ensemble des rendez-vous pris. Cette table doit être mise à jour à partir des informations gérées par le centre informatique de Mulhouse. La classe GèreRDV (décrite en annexe 5) est dédiée à la réalisation de cette application. Elle est destinée à simplifier les opérations de mise à jour de la table RDV dans la base de données locale. - Le second paramètre des méthodes ajouter et modifier est un objet de la classe enrdv décrite en annexe 5. Dans la méthode ajouter, cet objet contient l'ensemble des champs à l'exception du numéro de RDV (ce numéro est le premier paramètre). Dans la méthode modifier, cet objet contient uniquement les champs dont la valeur doit être modifiée dans la table. - La méthode gettype retourne un caractère indiquant le type du champ dont le nom est passé en paramètre : C pour chaîne, N pour numérique ou D pour date. En tant que futur développeur d'application, le responsable vous soumet un certain nombre de besoins pour tester vos connaissances en POO : Besoin 7 Écrire les méthodes de la classe GèreRDV. >Classe GèreRDV : Cette classe permet de mettre à jour la base de données du centre de Douvres. Elle opère les ajouts, modifications et suppressions sur la table RDV. Classe GèreRDV Privé fonction gettype(nomchamp : chaîne) : caractère // Retourne un caractère indiquant le type du champ (C,N ou D). fonction valeurformatee(nomchamp : chaîne, valeurchamp : chaîne) : chaîne // Retourne la valeur correctement formatée en fonction du type de champ. procédure execsql(sql : chaîne)
// Exécute l'instruction SQL insert, update ou delete passée en paramètre. Public gèrerdv(chaineconnexion : chaîne) // constructeur, permet entre autres de se connecter au SGDB en utilisant la // chaîne de connexion passée en paramètre. procédure supprimer(numéro : chaîne) // Supprime dans la table RDV le RDV dont le numéro est passé en paramètre. procédure ajouter(numéro : chaîne, leschamps : enrdv) // Ajoute une ligne dans la table RDV. Le paramètre leschamps regroupe, dans //l ordre, l ensemble des champs de la table RDV, à l exception du numéro passé //dans le 1er paramètre. procédure modifier(numéro : chaîne, leschamps : enrdv) // Modifie une ligne dans la table RDV. Le paramètre leschamps contient uniquement //les champs qui doivent être modifiés pour le rendez-vous dont le numéro est passé //dans le premier paramètre. Fin Classe Description de la méthode supprimer de la classe GèreRDV procédure supprimer(numéro : chaîne) // Supprime le RDV dont le numéro est passé en paramètre. Début requête : chaîne requête : "delete from RDV where numrdv=" requête : requête + valeurformatee("numrdv", numéro) // + : concaténation execsql(requête) Fin Exemple d utilisation : grdv : GèreRDV grdv new GèreRDV("Provider=interbase;BD=planning") grdv.supprimer("1215") // Supprime le RDV n 1215 de la base du centre de Douvres. private char gettype(string ch){ char caractrcode= ; if((ch.equalsignorecase("chaine") ch.equalsignorecase("chaîne")) caractrcode='c'; else if((ch.equalsignorecase("numérique") ch.equalsignorecase("numerique")) caractrcode='n'; else if(ch.equalsignorecase("date")) caractrcode='d'; return caractrcode;
Utilisation de JDBC pour se connecter à la base de donnée mysql du centre de Douvres à partir de Java. Pour cela il faut récupérer le driver Connector/J5.1.19 : http://dev.mysql.com/downloads/connector/j/ private String valeurformatee(string nomchamps, String valeurchamps){ char caractrcode=' '; caractrcode=gettype(nomchamps); if(caractrcode=='n'){ //traitement pour formatage if(caractrcode=='c'){ //traitement pour formatage if(caractrcode=='d'){ //traitement pour formatage return valeurchamps; private void execsql(string sql){ http://openclassrooms.com/courses/creez-votre-application-web-avec-javaee/introduction-a-mysql-et-jdbc http://www.commentcamarche.net/forum/affich-2658844-connection-amysql-via-java chdeco = jdbc:mysql://nomhote:port/nombdd /* Chargement du driver JDBC pour MySQL */ try { Class.forName( "com.mysql.jdbc.driver" ); catch ( ClassNotFoundException e ) { /* Gérer les éventuelles erreurs ici. */
Si cette ligne de code envoie une exception de type ClassNotFoundException, cela signifie que le fichier.jar contenant le driver JDBC pour MySQL n'a pas été correctement placé dans le classpath. Vous pourrez d'ailleurs faire le test vousmêmes lorsque nous passerons à la pratique, en retirant le driver que nous avons ajouté en tant que bibliothèque externe, et constater que cette ligne envoie bien une exception! Ligne 50 Ajout du driver JDBC Librairie du projet (Driver JDBC) et CLASSPATH eclipse Créez un répertoire lib à la racine du projet
Dans ce répertoire importez le driver jdbc : cliquez-droit puis import General/File System
naviguez dans votre système jusqu à trouver le driver (ici mysql-connector-java-5.0.5.jar, récupéré suite au dézippage de ZIP Driver )
Cliquez sur Finish Le driver apparaît dans la vue. Informez Eclipse de l existence de ce driver
Cliquez-droit sur le projet->properties. L écran suivant apparaît. Dans l onglet Librairies cliquez sur bouton Add Jars car le driver est déja dans le projet (Sinon il faudrait cliquer sur Add External Jars)
sélectionnez le driver puis OK Le driver apparaît désormais dans Referenced librairies.