[[slam4:tp3]]

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:tp3 [2012/09/25 01:59]
jcheron [Classe passerelle]
slam4:tp3 [2017/08/09 16:34] (Version actuelle)
Ligne 1: Ligne 1:
 ====== Accès aux bases de données ====== ====== Accès aux bases de données ======
 +
 +<​html>​
 +<div class="​info">​
 +Modalités :
 +<​ul><​li>​1 étudiant implémente "au tableau"</​li>​
 +<​li>​Implémentation en solo</​li>​
 +</​ul></​div></​html>​
 +===== Activités du référentiel concernées : =====
 +
 +  * D4.1 - Conception et réalisation d’une solution applicative
 +
 +
 ===== Contexte ===== ===== Contexte =====
 Il s'agit du même contexte que dans le TP précédent,​ il est question cette fois de s'​intéresser à la persistance des données : utilisateurs et groupes.\\ Il s'agit du même contexte que dans le TP précédent,​ il est question cette fois de s'​intéresser à la persistance des données : utilisateurs et groupes.\\
Ligne 5: Ligne 17:
  
 ===== Contraintes fonctionnelles ===== ===== Contraintes fonctionnelles =====
-L'​application Web doit charger à sont démarrage les utilisateurs,​ puis les groupes, en répartissant les utilisateurs dans leurs groupes respectifs.\\+L'​application Web doit charger à son démarrage les utilisateurs,​ puis les groupes, en répartissant les utilisateurs dans leurs groupes respectifs.\\
 A la fermeture de l'​application,​ ou à la demande, les objets (utilisateurs et groupes) sont mis à jour dans la base de données (ajout, modification,​ suppression). A la fermeture de l'​application,​ ou à la demande, les objets (utilisateurs et groupes) sont mis à jour dans la base de données (ajout, modification,​ suppression).
  
Ligne 20: Ligne 32:
  
 ===== Missions ===== ===== Missions =====
-  * Créer la base de données nommée **mUsers**, et saisissez des données de test+  * Créer la base de données nommée **gUsers**, et saisissez des données de test
   * Créer les classes d'​accès aux bases de données et à Mysql (**Db** et **DbMysql**)   * Créer les classes d'​accès aux bases de données et à Mysql (**Db** et **DbMysql**)
   * Créer l'​énumération RecordStatus et ajouter le membre recordStatus dans la classe Bo, mettre à jour les méthodes devant modifier le recordStatus   * Créer l'​énumération RecordStatus et ajouter le membre recordStatus dans la classe Bo, mettre à jour les méthodes devant modifier le recordStatus
Ligne 27: Ligne 39:
  
 ===== Annexes ===== ===== Annexes =====
 +Consuter le document [[slam4:​poo:​db|Accès aux bases de données en java]]
 ==== Classes d'​accès aux données ==== ==== Classes d'​accès aux données ====
 {{:​slam4:​p-net-db.png}} {{:​slam4:​p-net-db.png}}
Ligne 38: Ligne 50:
 import java.sql.Statement;​ import java.sql.Statement;​
  
 +/**
 + * Représente une connexion à une base de données
 + * @author jc
 + *
 + */
 public abstract class Db { public abstract class Db {
  protected Connection connection;  protected Connection connection;
Ligne 117: Ligne 134:
 package net.db; package net.db;
  
 +/**
 + * Représente une connexion à une base de données Mysql
 + * @author jc
 + *
 + */
 public class DbMysql extends Db { public class DbMysql extends Db {
  
Ligne 134: Ligne 156:
 package net.bo; package net.bo;
  
 +/**
 + * Enumération des statuts d'un objet permettant ensuite sa sérialistion en BDD
 + * @author jc
 + *
 + */
 public enum RecordStatus { public enum RecordStatus {
  rsNone(""​),​rsDelete("​supprimé"​),​rsNew("​ajouté"​),​rsUpdate("​modifié"​);​  rsNone(""​),​rsDelete("​supprimé"​),​rsNew("​ajouté"​),​rsUpdate("​modifié"​);​
Ligne 145: Ligne 172:
 } }
 </​code>​ </​code>​
- 
 ==== Classe passerelle ==== ==== Classe passerelle ====
 {{:​slam4:​p-net-technics.png}} {{:​slam4:​p-net-technics.png}}
Ligne 155: Ligne 181:
 import net.bo.Groupe;​ import net.bo.Groupe;​
 import net.bo.Utilisateur;​ import net.bo.Utilisateur;​
 +import net.db.Db;
  
 +/**
 + * Classe passerelle entre le modèle objet et la base de données
 + * @author jc
 + *
 + */
 public class DbGateway { public class DbGateway {
 +
 + /**
 + * Retourne une connexion disponible à la base de données
 + * @return Connexion disponible à la BDD
 + */
 + public static Db getDb(){
 + // TODO à implémenter;​
 + return null;
 + }
  /**  /**
  * charge les utilisateurs depuis la connection à la base de données de l'​application  * charge les utilisateurs depuis la connection à la base de données de l'​application
Ligne 169: Ligne 210:
  * @return Hashmap des groupes  * @return Hashmap des groupes
  */  */
- public static HashMap<​String,​ Groupe> ​getComptes(){+ public static HashMap<​String,​ Groupe> ​getGroupes(){
  // TODO à implémenter;​  // TODO à implémenter;​
  return null;  return null;
Ligne 178: Ligne 219:
  */  */
  public static void allocateUsers(){  public static void allocateUsers(){
- // TODO à implémenter;​ + // TODO à implémenter;​ 
 +
 +  
 + /** 
 + * Met à jour dans la base de données db l'​utilisateur passé en paramètre 
 + * en utilisant son membre recordStatus 
 + * @param user utilisateur à mettre à jour 
 + * @param db connexion à la base de données 
 + */ 
 + public static void updateOneUser(Utilisateur user,Db db){ 
 + // TODO à implémenter;​
  }  }
  
  /**  /**
- * Met à jour la hashMap des utilisateurs passée ​en paramètre dans la base de données+ * Met à jour dans la base de données db le groupe passé ​en paramètre 
 + * en utilisant son membre recordStatus 
 + * @param group groupe à mettre à jour 
 + * @param db connexion à la base de données 
 + */ 
 + public static void updateOneGroup(Groupe group,Db db){ 
 + // TODO à implémenter;​ 
 +
 + /** 
 + * Met à jour dans la base de données ​la hashMap des utilisateurs passée en paramètre
  * en utilisant le membre recordStatus de chaque objet  * en utilisant le membre recordStatus de chaque objet
  * @param users hashMap des utilisateurs  * @param users hashMap des utilisateurs
  */  */
  public static void updateUsers(HashMap<​String,​ Utilisateur>​ users){  public static void updateUsers(HashMap<​String,​ Utilisateur>​ users){
- // TODO à implémenter;​ + // TODO à implémenter;​
  }  }
  
  /**  /**
- * Met à jour la hashMap des groupes passée en paramètre ​dans la base de données+ * Met à jour dans la base de données ​la hashMap des groupes passée en paramètre
  * en utilisant le membre recordStatus de chaque objet  * en utilisant le membre recordStatus de chaque objet
  * @param groupes hashMap des groupes  * @param groupes hashMap des groupes
  */  */
- public static void updateComptes(HashMap<​String,​ Groupe> groupes){ + public static void updateGroupes(HashMap<​String,​ Groupe> groupes){ 
- // TODO à implémenter;​ + // TODO à implémenter;​
  }  }
 } }
 +
 </​code>​ </​code>​
slam4/tp3.1348531181.txt.gz · Dernière modification: 2017/08/09 16:32 (modification externe)
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0