Vous êtes sur la page 1sur 2

Exercice 8 : database connection system

Soient les composants Connection, Query, Dataset, Dataviewer et Dataprinter. Connection permet d’établir une connexion
à une base de données créée dans un SGBD en utilisant un lien, un nom d’utilisateur et un mot de passe. Query permet
d’exécuter une requête SQL connectée avec Connection et envoyer le résultat vers un Dataset. Le résultat peut être une table
ou un message revenu de l’SGBD. Dataviewer permet d’afficher le résultat contenu dans un dataset. Le Dataprinter permet
d’imprimer les données d’un Dataset (ou d’un dataviewer) en précisant le format d’impression et l’imprimante à utiliser.

Partie I : architecture interne d’un composant

1. Donner un diagramme de composants pour ce paquet de composants

2. Donner l’architecture interne du composant Query en précisant ses propriétés et leurs types.

3. Soient les deux propositions suivantes :

Proposition 1 : Proposition 2

Le changement de la proprité query du L’exécution de la fonction executeQuery()


composant Query déclenche se fait manuellement par l’utilisateur
automatiquement l’exécution de la requête
en appelant la fonction executeQuery().

Expliquer l’effet de chaque proposition sur l’architecture interne du composant Query.

Partie II : architecture collaborative

Considérant que toute les propriétés des composants sont liées, établir un schéma collaborative entre ces composants en
précisant les événements et les fonctions à exécuter de la connexion d’une base de données jusque l’impression de résultat
d’exécution d’une requête SQL. (06.00 points)

Solution
1. Diagramme de composants (02.50 points)

Query

DataSet

Connection

DataPrinter DataViewer

2. Architecture interne du composant Query

Les propriétés

Propriété Type Liée Avec contrainte Indexée Setter et getter

connexion Connection X S+G

requete String S+G

dataSet DataSet X S+G

Les méthodes
Méthode Rôle Pré-conditions Post-conditions Exception

executeRequete() Exécuter la La connexion est Le résultat est nullPointerException : se déclenche


requête établie avec succès sauvegardé dans si la propriété connection ou la
datSet propriété datatSet est nulle.

SQLexception : se déclenche si une


erreur SQL est détecter dans la
propriété requête.

Les événements

Evénement Rôle

propertyChangedEvent Déclencher une alarme si la valeur d’une propriété liée est changée.

3. L’effet de chaque proposition

Proposition 1 : la fonction setQuery() doit déclencher une alarme de type FirePropertyChange et le constructeur
du composant doit exécuter la fonction privée executeQuery() à l’intérieur de la fonction propertyChanged de
l’événement PropertyChangeEvent.

Proposition 1 : la fonction setQuery() ne déclenche aucune alarme de type de type FirePropertyChange et la


fonction executeQuery() doit être publique.

4. L’architecture collaborative

Connection PropertyChanged executeQuery Query

PropertyChanged
Reconnection()
executeQuery()

FillData()

dataViewer viewData() PropertyChanged Dataset

fillData()
PropertyChanged
viewData() printData()

printData() dataPrinter

PropertyChanged
printData()

Vous aimerez peut-être aussi